标签:
NSURL
:确定要访问的资源NSURLRequest
:根据 URL
建立请求,向服务器索要数据NSURLConnection
:建立网络连接,将请求(异步)发送给服务器// 1. `NSURL`:确定要访问的资源
NSURL *url = [NSURL URLWithString:@"http://m.baidu.com"];
// 2. `NSURLRequest`:根据 `URL` 建立请求,向服务器索要数据
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// 3. `NSURLConnection`:建立网络连接,将请求(异步)发送给服务器
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
NSLog(@"%@", data);
}];
NSURLConnection
代码小结sendAsynchronousRequest
发送异步请求异步
发送给服务器queue
负责调度 completionHandler
的执行completionHandler
执行的队列
[[NSOperationQueue alloc] init]
,后台线程异步执行[NSOperationQueue mainQueue]
,主线程异步执行response
,服务器的响应,通常在开发下载
功能时才会使用响应属性 | 说明 |
---|---|
URL |
服务器反馈的 URL,有的时候,服务器会重定向新的 URL |
MIMEType |
|
statusCode |
状态码
|
expectedContentLength |
数据长度,下载文件总长度 |
suggestedFilename |
建议的文件名 |
data
服务器返回的二进制数据,程序员最关心的内容connectionError
连接错误,任何网络访问都有可能出现错误// 标准的错误处理方法
if (connectionError || data == nil) {
NSLog(@"网络不给力!");
return;
}
URL
建立请求缓存策略
,网络超时时长
客户端类型
,身份验证
...// 告诉服务器,客户端的类型是 iPhone,而且支持 AppleWebKit
[request setValue:@"iPhone AppleWebKit" forHTTPHeaderField:@"User-Agent"];
枚举 | 数值 | 说明 |
---|---|---|
NSURLRequestUseProtocolCachePolicy |
0 | 默认的缓存策略 |
NSURLRequestReloadIgnoringLocalCacheData |
1 |
|
NSURLRequestReturnCacheDataElseLoad |
2 | 如果有缓存,就返回缓存,否则加载数据 |
NSURLRequestReturnCacheDataDontLoad |
3 | 如果有缓存,就返回缓存,否则不加载 |
60 s
15~30
秒之间SDWebImage
的默认超时时长是 15
秒AFN
的默认超时时长是 60
秒
标签:
原文地址:http://www.cnblogs.com/jiangshengkai/p/4896535.html