网络访问1
来源:互联网 发布:linux使用 编辑:程序博客网 时间:2024/05/01 05:59
一、获取URL地址
确定要访问的资源路径
常用方法:
+URLWithString,使用指定的字符串实例化NSURL对象,注意URL不能保护空格、中文等特殊符号
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/demo.json"];
二、 向服务器发送请求(NSURLRequest)
requestWithURL参数:
- url:资源路径
- cachePolicy:缓存策略
1、NSURLRequestUseProtocolCachePolicy = 0, 默认缓存策略,会自动缓存
2、NSURLRequestReloadIgnoringLocalCacheData = 1, 每次都从服务器去加载数据,忽略本地缓存
3、NSURLRequestReturnCacheDataElseLoad = 2, 如果有缓存,就用缓存,没有就网上加载(使用wifi)
4、NSURLRequestReturnCacheDataDontLoad = 3, 如有缓存,就用缓存,没有返回空(使用3g) - timeoutInterval:超时时间,默认60秒,一般设置15~20秒,超过这个时间以后,如果服务器仍无反应,则不继续等待
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:15];
三、将请求发送给服务器并获取响应
sendAsynchronousRequest异步参数:
- request: 请求
- queue:队列,销毁方法执行的队列
- Handler:网络访问执行的代码块
- response:服务器的响应
- data:返回的二进制数据
- connectionErrpr:连接服务器的时候出现错误,只要有网络访问,就可能会错误
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData * _Nullable data, NSError *connectionError) { //网络请求完成后调用这块代码,从服务器获得二进制数据 //连接错误或者是数据错误 if(connectionError || data == nil){ NSLog(@"网络不通畅,请重新连接"); return; }NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); }];
四、 数据处理
- 序列化及反序列化
- 服务器返回客户端数据格式
1、字符串
2、JSON
3、XML
4、PList
5、文件下载可以返回的任意格式
6、图像
7、zip等
0 0
- 网络访问1
- 网络访问
- JBoss7.1 通过IP网络访问
- Android网络访问解决方案小结·1
- xCODE7.1进行网络访问的设置
- 多路访问网络
- 取消网络访问权限
- 允许网络访问PostgreSQL
- 网络访问没有权限
- ubuntu 访问网络共享
- 网络访问攻防战
- 访问网络打印机
- android的网络访问
- android的网络访问
- 虚拟机网络访问-nat
- 使用HTPCLIENT访问网络
- Http操作访问网络
- 网络访问限制
- sicily 1156. Binary tree
- 内核编程之第一个模块
- Ionic环境配置学习中
- 根据分数输出等级
- ubuntu12.04设置静态IP
- 网络访问1
- ACM:蓝桥杯:斐波那契数
- 通过Activity设置动态Fragment中的ListView(通过SimpleCursorAdapter适配)
- 小白看 KMP算法
- hdu2795Billboard
- Netbeans8.1 IDE的插件和历史记录(二)
- 算法系列(八)数据结构之二叉查找树
- Delete Node in a Linked List
- ACM:蓝桥杯:韩信点兵