ios网络请求

URL&HTTP协议&GET请求&POST请求

大兔子大兔子 提交于 2020-02-29 08:34:05
1.什么是URL    URL 的全称是 Uniform Resource Locator (统一资源定位符)  通过 1 个 URL ,能找到互联网上唯一的 1 个资源 URL 就是资源的地址、位置,互联网上的每个资源都有一个唯一的 URL URL 的基本格式 = 协议 :// 主机地址 / 路径 http://202.108.22.5/img/bdlogo.gif 协议:不同的协议,代表着不同的资源查找方式、资源传输方式.1>HTTP:// 表示采用HTTP协议, 主机地址:存放资源的主机的 IP 地址(域名)2>202.208.225/ 这是我的本地服务器地址, 路径:资源在主机中的具体位置3>img/bdlogo.gif 这是我要访问的数据在我服务器上的路径 2.URL 中常见的协议 : HTTP 超文本传输协议,访问的是远程的网络资源,格式是 http:// http 协议是在网络开发中最常用的协议 file 访问的是本地计算机上的资源,格式是 file:// (不用加主机地址) mailto 访问的是电子邮件地址,格式是 mailto: FTP 访问的是共享主机的文件资源,格式是 ftp:// HTTP 协议简介 HTTP 协议的作用 HTTP 的全称是 Hypertext Transfer Protocol ,超文本传输协议 规定客户端和服务器之间的数据传输格式

iOS项目之模拟请求数据

浪子不回头ぞ 提交于 2020-02-26 12:38:53
如何在iOS开发中更好的做假数据? 当工期比较紧的时候,项目开发中会经常出现移动端等待后端接口数据的情形,不但耽误项目进度,更让人有种无奈的绝望。所以在开发中,我们常常自己做些假数据,以方便开发和UI调试。然而做假数据方法不同,效率和安全性都各不同,有时稍有不慎,还会产生很大的bug。因此本文拟结合我在贝聊的开发经验,讲一讲我们组在iOS开发中曾经用过的做假数据的方法及其优劣。 示例项目 为方便下文的说明,本文主要以贝聊家长版app发现首页的热门帖子列表的实现为例。热门帖子列表的样式如下图: 这是比较常见的列表,用常用的 UITableView 实现即可,但需要自定义一个的 UITableViewCell 的子类 ExploreTableViewCell 。项目中, ExploreTableViewCell 并没有用xib实现(因为xib日后不好修改,且代码复用性差),而是通过 SnapKit 用纯代码布的局,具体的布局代码大致如下: 123456789101112131415161718192021222324252627282930313233343536 import UIKitimport SnapKitclass ExploreTableViewCell: UITableViewCell { let thumbnailImageView: UIImageView let

iOS开发实践之GET和POST请求

我的未来我决定 提交于 2020-02-25 11:48:13
GET和POST请求是HTTP请求方式中最最为常见的。 在说请求方式之前先熟悉 HTTP 的通信过程: 请求 1 、 请求行 : 请求方法、请求路径、 HTTP 协议的版本号 GET /MJServer/resources/images/ 1. jpg HTTP/ 1.1 2、请求头 : client的一些描写叙述信息 Host : 192.168.1.111:8080 // client想訪问的server主机地址 User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0 // client的类型,client的软件环境 Accept : text/html, // client所能接收的数据类型 Accept-Language : zh-cn // client的语言环境 Accept-Encoding : gzip // client支持的数据压缩格式 3、请求体 : POST 请求才有这个东西 请求參数,发给server的数据 响应 1、状态行(响应行) : HTTP 协议的版本号、响应状态码、响应状态描写叙述 Server : Apache-Coyote/1.1 // server的类型 Content-Type : image/jpeg // 返回数据的类型 Content-Length

swift网络数据请求方法

北慕城南 提交于 2020-02-21 05:46:54
搭建一个apache服务器,用php编写一个返回给客户端请求数据的脚本 1 <?php 2 // header("Content-type:text/html;charset=utf-8"); 3 header("Content-type:text/json;charset=utf-8"); 4 if (isset($_REQUEST['name'])) { 5 $result = $_REQUEST['name']; 6 $arr=array("result"=>$result); 7 $json=json_encode($arr); 8 echo $json; 9 } 10 ?> 该php实现了接收一个客户端的远程post或者get请求,然后返回给其一个简单的json字串, 打开Xcode创建一个singleView工程,在IB中添加一个button和一个label并连线到代码中的outlet,我的测试php文件的地址为: let url = "http://192.168.1.106/apprequesttest/index.php" 下面开始描述两种实现网络请求的方法,在button的action事件中添加网络请求 IOS SDK自带的网络请求方法: GET请求方法: 1 var msg = "jimmy" 2 NSURLConnection

Swift网络请求(Moya篇)

家住魔仙堡 提交于 2020-02-21 05:39:39
  在使用 Alamofire 进行网络请求的时候,相信大部分的同学都会封装一个抽象的NetworkLayer,如"APIManager" 或者 "NetworkModel"等等。但是位置业务功能增加,会渐渐混合各种请求,不够清晰,而Moya能很好地解决这类问题。Moya在Alamofire基础上进行封装,是一个允许高度自定义的网络层,可以根据具体的需求进行接口的设置。具体的介绍可以参考Moya的 官方链接 ,结构图如下:   接下来就介绍一下Moya的一些常见的用法: (一)根据业务需求创建具体请求:   打比方现在我们需要书写账户的相关接口,如Login、userInfo。那么首先我们得创建AccountService: enum AccountService { case login(phoneNum: NSInteger,passWord: NSInteger) case logout }   然后让AccountService实现 TargetType协议,定义请求需要的基本信息: extension AccountService: TargetType { var baseURL: URL { return URL(string: ServiceBaseURL)! } var path: String { switch self { case .login(_, _):

iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

你。 提交于 2020-01-31 01:12:57
一、网络基础 1、基本概念 > 为什么要学习网络编程 在移动互联网时代,移动应用的特征有 几乎所有应用都需要用到网络,比如QQ、微博、网易新闻、优酷、百度地图 只有通过网络跟外界进行数据交互、数据更新,应用才能保持新鲜、活力 如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据 新闻:网易新闻、新浪新闻、搜狐新闻、腾讯新闻 视频:优酷、百度视频、搜狐视频、爱奇艺视频 音乐:QQ音乐、百度音乐、酷狗音乐、酷我音乐 LBS:百度地图、高德地图、大众点评、墨迹天气、滴滴打车 电商:淘宝、京东商城、天猫、蘑菇街、凡客诚品、美丽说 社交:QQ、微信、微博、陌陌、比邻 为什么要学习网络编程 网络编程是一种实时更新应用数据的常用手段 网络编程是开发优秀网络应用的前提和基础 > 基本概念 在网络编程中,有几个必须掌握的基本概念 客户端(Client):移动应用(iOS、android等应用) 服务器(Server):为客户端提供服务、提供数据、提供资源的机器 请求(Request):客户端向服务器索取数据的一种行为 响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端 作为移动开发工程师,主要的精力都是放在客户端开发 2、服务器 按照软件开发阶段来分,服务器可以大致分为2种

IOS开发之──ASIHTTPRequest详解

空扰寡人 提交于 2020-01-30 20:07:41
ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能, 如: 异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证 在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。 下面就举例说明它的API用法。 发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件。所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到)。 - (IBAction)grabURL:(id)sender { NSURL *url = [NSURL URLWithString:@ " http://allseeing-i.com" ]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request startSynchronous]; NSError *error = [request error]; if (!error) { NSString *response = [request responseString]; } } a, 用requestWithURL快捷方法获取ASIHTTPRequest的一个实例 b,

[iOS 多线程 & 网络 - 2.9] - ASI框架

柔情痞子 提交于 2020-01-30 19:24:55
A.ASI基本知识 1.ASI 简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大。 ASI的实现基于底层的CFNetwork框架,因此运行效率很高。 ASI的github地址 https://github.com/pokeb/asi-http-request ASI的使用参考 http://www.cnblogs.com/dotey/archive/2011/05/10/2041966.html http://www.oschina.net/question/54100_36184 2.ASI 的使用 (1)导入   下载并导入ASI框架,注意该框架依赖于Reachability. (2)ASI的源码需要设置为非ARC编译: ASI依赖框架: B.基本使用 创建请求对象 ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 1.发送GET & POST请求 (1)GET请求 1 /** get请求 */ 2 - (void)sendByGet{ 3 // 创建请求 4 NSURL *url = [NSURL URLWithString:@"http://192.168.0.21:8080/MyTestServer/login?user=tom&password=123"

IOS开发网络篇之──ASIHTTPRequest详解

萝らか妹 提交于 2020-01-30 19:23:51
目录 目录 发起一个同步请求 创建一个异步请求 队列请求 请求队列上下文 ASINetworkQueues, 它的delegate提供更为丰富的功能 取消异步请求 安全的内存回收建议 向服务器端上传数据 下载文件 获取响应信息 获取请求进度 cookie的支持 大文件断点续传 ASIDownloadCache 设置下载缓存 多种的缓存并存 缓存策略 缓存存储方式 缓存其它特性 实现自定义的缓存 使用代理请求 ASIHTTPRequest, 请求的其它特性 ASIHTTPRequest是一款极其强劲的HTTP访问开源项目。让简单的API完成复杂的功能, 如: 异步请求,队列请求,GZIP压缩,缓存,断点续传,进度跟踪,上传文件,HTTP认证 在新的版本中,还加入了Objective-C闭包Block的支持,让我们的代码更加轻简灵活。 下面就举例说明它的API用法。 发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件。所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到)。 - (IBAction)grabURL:(id)sender { NSURL *url = [NSURL URLWithString:@ " http://allseeing-i.com" ]; ASIHTTPRequest

iOS - ASIHTTPRequest 网络请求

被刻印的时光 ゝ 提交于 2020-01-30 19:21:35
前言 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐,ASIHTTPRequest 就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 API,外号 “HTTP终结者”,用 Objective-C 编写,运行效率很高,可以很好的应用在 Mac OS X 系统和 iOS 平台的应用程序中,ASIHTTPRequest 适用于基本的 HTTP 请求,和基于 REST 的服务之间的交互。可惜作者早已停止更新,有一些潜在的 BUG 无人去解决,很多公司的旧项目里面都残留着它的身影,以前的很多 iOS 项目都是 ASI + SBJson,会不会用 ASI,可以算是检验是否为老牌 iOS 程序员的标准之一。从 iOS 9 开始 CFNetwork 相关的类和方法开始被废弃,可以使用 AFNetworking 替换 ASIHTTPRequest 的使用。在 iOS 9+ 中使用 ASIHTTPRequest 无需对 App Transport Security Settings 添加设置。 1、ASIHTTPRequest 1.1 ASI 主要特色 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作。 下载的数据,可存储到内存中或直接存储到磁盘中。 能上传本地文件到服务端。 可以方便的访问和操作请求和返回的 Http