标签:
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发送异步请求
1 此方法就是异步执行的,程序员无序考虑开启线程,或者创建队列
2 会将之前建立好的请求异步发送给服务器
3 等到接收到服务器响应后,由 queue 负责调度 completionHandler 的执行
队列
[[NSOperationQueue alloc] init],后台线程异步执行
[NSOperationQueue mainQueue],主线程异步执行
如果要对数据进行耗时处理,例如:解压缩等,选择新建队列调度
如果只是做简单处理,立即更新 UI,选择主队列
completionHandler
响应属性 |
说明 |
URL |
服务器反馈的 URL,有的时候,服务器会重定向新的 URL |
MIMEType |
|
statusCode |
状态码
|
expectedContentLength |
数据长度,下载文件总长度 |
suggestedFilename |
建议的文件名 |
// 标准的错误处理方法
if (connectionError || data == nil) {
NSLog(@"网络不给力!");
return;
}
请求简介
// 告诉服务器,客户端的类型是 iPhone,而且支持 AppleWebKit
[request setValue:@"iPhone AppleWebKit" forHTTPHeaderField:@"User-Agent"];
标签:
原文地址:http://www.cnblogs.com/fakeCoder/p/5093750.html