IOS学习之网络笔记
2015-06-11 18:22
666 查看
一. 网络请求的步骤
1. 确定地址NSURL
2. 建立请求NSURLRequest
3. 建立并启动连接NSURLConnection
4. 通过代理方法处理网络请求
遵守协议:NSURLConnectionDataDelegate
二.
网络代理方法
1. 接收到服务器的响应,服务器要传数据,客户端做接收准备
2. 接收服务器传输的数据,可能会多次执行
3. 接收数据完成,做后续处理
4. 服务器请求失败,原因很多(网络环境等等)
5. 向服务器发送数据,此方法仅适用于POST,尤其上传文件
三. GET方法
在NSURL中,指定参数(如果有,也可以不指定参数),例如:http://www.baidu.com
四. POST方法
定义一个可变的URLMutableRequest
1)
时长
[request setTimeoutInterval:2.0f];
2)
请求方式(默认是GET)
[request setHTTPMethod:@"POST"];
3) 数据体
NSData *body = [string dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
五.
同步方法——必须要某个网络请求完成后,才能后续执行,例如网银登录
看到方法参数中包含__autoreleasing字样,在定义的对象名前面加上“&”
NSURLResponse *response = nil;
NSError *error = nil;
// 同步操作没有完成,后面的代码不会执行
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
1> 接收到数据,表示工作正常
2> 没有接收到数据,但是error为nil,表示接收到空数据
通常服务器没有对该请求做任何响应
3> error不为空,表示请求出错
六.
异步方法
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *reponse, NSData *data, NSError *error) {
// 请求完成后的处理
}];
异步方法不用等待网络请求结束
七. NSURLRequest
使用以下实例化方法,可以在实例化的同时,指定请求超时时长。
1. url
2. 缓存策略
默认是NSURLRequestUseProtocolCachePolicy
3. 超时时长
NSURLRequest *rq = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];
1. 确定地址NSURL
2. 建立请求NSURLRequest
3. 建立并启动连接NSURLConnection
4. 通过代理方法处理网络请求
遵守协议:NSURLConnectionDataDelegate
二.
网络代理方法
1. 接收到服务器的响应,服务器要传数据,客户端做接收准备
2. 接收服务器传输的数据,可能会多次执行
3. 接收数据完成,做后续处理
4. 服务器请求失败,原因很多(网络环境等等)
5. 向服务器发送数据,此方法仅适用于POST,尤其上传文件
三. GET方法
在NSURL中,指定参数(如果有,也可以不指定参数),例如:http://www.baidu.com
四. POST方法
定义一个可变的URLMutableRequest
1)
时长
[request setTimeoutInterval:2.0f];
2)
请求方式(默认是GET)
[request setHTTPMethod:@"POST"];
3) 数据体
NSData *body = [string dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:body];
五.
同步方法——必须要某个网络请求完成后,才能后续执行,例如网银登录
看到方法参数中包含__autoreleasing字样,在定义的对象名前面加上“&”
NSURLResponse *response = nil;
NSError *error = nil;
// 同步操作没有完成,后面的代码不会执行
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
1> 接收到数据,表示工作正常
2> 没有接收到数据,但是error为nil,表示接收到空数据
通常服务器没有对该请求做任何响应
3> error不为空,表示请求出错
六.
异步方法
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *reponse, NSData *data, NSError *error) {
// 请求完成后的处理
}];
异步方法不用等待网络请求结束
七. NSURLRequest
使用以下实例化方法,可以在实例化的同时,指定请求超时时长。
1. url
2. 缓存策略
默认是NSURLRequestUseProtocolCachePolicy
3. 超时时长
NSURLRequest *rq = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];
相关文章推荐
- HttpURLConnection
- httpclient https忽略证书直接请求
- TCP 通信过程中各步骤的状态
- http代理之HTTP协议详解
- 获取路由器网络信息(mac,ip,router,dns,dhcp clients)
- 进度计划管理软件 PowerPlan (包含GRID,甘特图,直方图,网络图,跟踪逻辑,时标概要图等功能)
- HTTP权威指南之连接管理
- HttpGet()和HttpPost()2
- HttpGet()和HttpPost()
- BP神经网络非线性函数拟合应用
- TCP和UDP的比较
- 【iOS】网络加载图片缓存与SDWebImage
- TCP拥塞控制机制
- IOS延时加载网络图片
- TCP流量控制和拥塞控制
- Linux网络编程——浅谈 TCP 三次握手和四次挥手
- 黑马程序员——Java基础---网络编程(TCP编程)
- 利用NSURLSession在网络里下载视频
- TCP、UDP和HTTP详解
- 使用HttpSessionListener接口监听Session的创建和失效