网络参数|数据解析
来源:互联网 发布:mac安装jdk1.8教程 编辑:程序博客网 时间:2024/03/28 17:03
1.URL
确定要访问的资源路径
2.请求
1.基于URL建立请求
2.设置请求属性:缓存策略,网络超时时长。
3.告诉服务器额外信息:客户端类型,身份验证。
// 告诉服务器,客户端的类型是 iPhone,而且支持 AppleWebKit[request setValue:@"iPhone AppleWebKit" forHTTPHeaderField:@"User-Agent"];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:15.0];
缓存策略枚举 数值 说明
NSURLRequestUseProtocolCachePolicy
0默认的缓存策略NSURLRequestReloadIgnoringLocalCacheData
1- 忽略本地缓存数据,始终加载服务器的数据
- 对数据的及时性要求高的应用
- 例如:彩票、股票等
NSURLRequestReturnCacheDataElseLoad
2如果有缓存,就返回缓存,否则加载数据NSURLRequestReturnCacheDataDontLoad
3如果有缓存,就返回缓存,否则不加载超时时长1.默认网络时长是60s
2.建议超时时长 15~30秒之间
3.注意超时时长不能太短
4.SDWebImage的默认超时时长是15秒
5.AFN的默认超时时长是60秒
发送异步请求
[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { // 标准的错误处理方法 if (connectionError || data == nil) { NSLog(@"网络不给力!"); return; } NSLog(@"--> %@", [NSThread currentThread]);}];
NSLog(@"----");参数:
1.request请求
2.queue调度回调方法的队列
主队列:回调方法在主线程执行
自定义队列:回调方法在异步执行
队列的选择:
如果获得数据,直接更新UI,使用主队列。
如果获得数据,仍然需要做耗时的操作,例如解压缩,则使用自定义队列。
3.completionHandler 网络访问完成的回调
回调方法的参数
1.response 服务器响应,通常仅在开发,下载功能时才会用到。
2.data 服务器返回的二进制数据
数据实体,是程序员最关心的
3.connectionError 网络链接错误
网络开发中一定要处理链接错误
响应属性 说明
URL
服务器反馈的 URL,有的时候,服务器会重定向新的 URLMIMEType
- 服务器告诉客户端,返回的二进制数据的类型
ContentType
- 根据 MIMEType 客户端就知道使用什么软件处理返回的二进制数据
- 网络之所以这么丰富多彩,是因为有非常多的客户端软件
statusCode
状态码- 1XX消息
- 2XX 成功
- 3XX 更多选择
- 4XX 客户端错误
- 5XX 服务器错误
expectedContentLength
数据长度,下载文件总长度suggestedFilename
建议的文件名// 标准的错误处理方法if (connectionError || data == nil) { NSLog(@"您的网络不给力!"); return;}
0 0
- 网络参数|数据解析
- linux网络参数解析
- 网络请求数据解析
- 网络解析数据
- 网络数据请求解析
- 网络数据解析---XML
- Xml解析网络数据
- HttpURLConnection解析网络数据
- TouchJSON网络数据解析
- 浅析网络数据解析
- 网络数据gson解析
- xutils解析网络数据
- 网络数据解析
- 用NetPDL解析网络数据
- 网络数据的XML解析
- 网络数据的XML解析
- JOSN解析数据---从网络
- UI-json解析网络数据
- static
- leetcode之路004 Median of Two Sorted Arrays
- OC____about API
- 统计字符串第一个空字符前的字符长度
- 【YII2学习笔记】20150725-2
- 网络参数|数据解析
- vmware中的CentOS在连不上网的情况下安装g++
- poj2886 Who Gets the Most Candies? 线段树加反素数
- 记我的前端起始之路
- Turing equation
- C. Watto and Mechanism
- Android程序与JavaScript之间的简单调用
- poj1163 简单DP
- 黑马程序员----- c语言结构体