网络参数|数据解析

来源:互联网 发布: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];
缓存策略

枚举数值说明NSURLRequestUseProtocolCachePolicy0默认的缓存策略NSURLRequestReloadIgnoringLocalCacheData1

  • 忽略本地缓存数据,始终加载服务器的数据
  • 对数据的及时性要求高的应用
  • 例如:彩票、股票等
NSURLRequestReturnCacheDataElseLoad2如果有缓存,就返回缓存,否则加载数据NSURLRequestReturnCacheDataDontLoad3如果有缓存,就返回缓存,否则不加载超时时长

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
原创粉丝点击