NSUrlConnection
使用 NSUrlConnection 需要借助一下幾個對象
NSURLRequest:建立了一個請求靠粪,可以指定緩存策略、超時時間玖像。和NSURLRequest對應的還有一個NSMutableURLRequest团驱,如果請求定義為NSMutableURLRequest則可以指定請求方法(GET或POST)等信息。
NSURLConnection:用于發(fā)送請求诫龙,可以指定請求和代理。當前調(diào)用NSURLConnection的start方法后開始發(fā)送異步請求鲫咽。
基本使用
基本使用
error:
App Transport Security has blocked a cleartext HTTP (http://) resource load
在iOS9 beta1中签赃,蘋果將原h(huán)ttp協(xié)議改成了https協(xié)議,使用 TLS1.2 SSL加密請求數(shù)據(jù)分尸。
pInfo
NSUrlSession
NSURLSession提供了配置會話緩存锦聊、協(xié)議、cookie和證書能力箩绍,這使得網(wǎng)絡架構(gòu)和應用程序可以獨立工作孔庭、互不干擾。另外材蛛,NSURLSession另一個重要的部分是會話任務圆到,它負責加載數(shù)據(jù),在客戶端和服務器端進行文件的上傳下載
- NSURLSessionData
- NSURLSessionUploadTask
- NSURLSessionDownloadTask
這三個類都是NSURLSessionTask這個抽象類的子類卑吭,相比直接使用NSURLConnection,NSURLSessionTask支持任務的暫停芽淡、取消和恢復,并且默認任務運行在其他非主線程中
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error){
//id result = [NSJSONSerialization JSONObjectWithData:dara options:0 error:nil];
NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"更新UI");
});
}];
[task resume];