网络参数|数据解析

本文介绍了网络请求的过程,包括基于URL建立请求,设置请求属性如缓存策略和超时时间,并探讨了网络超时的合理设置。同时,讲解了异步请求的发送,选择合适的回调队列,以及completionHandler中服务器响应、数据和网络错误的处理。重点在于数据实体的获取和网络链接错误的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,有的时候,服务器会重定向新的 URL
MIMEType
  • 服务器告诉客户端,返回的二进制数据的类型
  • ContentType
  • 根据 MIMEType 客户端就知道使用什么软件处理返回的二进制数据
  • 网络之所以这么丰富多彩,是因为有非常多的客户端软件
statusCode状态码
  • 1XX消息
  • 2XX 成功
  • 3XX 更多选择
  • 4XX 客户端错误
  • 5XX 服务器错误
expectedContentLength数据长度,下载文件总长度
suggestedFilename建议的文件名

// 标准的错误处理方法
if (connectionError || data == nil) {
    NSLog(@"您的网络不给力!");
    return;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值