發(fā)送請求NSURLSession網(wǎng)絡請求會話
1、NSURLSessionDataTask數(shù)據(jù)類任務
? ? ? NSURLSessionUploadTask 上傳類任務
2、NSURLSessionDownloadTask下載類任務
發(fā)送請求的流程:
1、準備請求(NSURLRequest)
2、創(chuàng)建一個網(wǎng)絡請求會話(NSURLSession)
3、創(chuàng)建請求任務(NSURLSession-DataTask)
4、通過會話開啟任務(resume)
1、創(chuàng)建一個請求(NSURLRequest)
(1)URL
(2)創(chuàng)建一個請求對象(1、需要添加內(nèi)容到請求對象的時候NSMutableURLRequest
2、不需要添加內(nèi)容到請求對象的時候NSURLRequest)
NSURL*url = [NSURLURLWithString:@"http://apis.baidu.com/heweather/weather/free?city=zhengzhou"];
NSMutableURLRequest*request = [NSMutableURLRequestrequestWithURL:url];
//get、post都是發(fā)送一個內(nèi)容(參數(shù))到服務器端
//get:把要送的內(nèi)容拼接到URL字符串后面常用?隔開(1、把要發(fā)送的內(nèi)容暴露在URL的字符串中,不可以發(fā)送密碼隱私2、URL的字符串長度是有限制的(1kb)發(fā)送內(nèi)容過大不能使用)
//設置請求方式
[requsetsetHTTPMethod:@"get"];
//apikey請求頭
[requestaddValue:@"800df6eb77392d2205b55cfccbcc1662"forHTTPHeaderField:@"apikey"];
//2、創(chuàng)建NSURLSession會話
NSURLSession*session = [NSURLSessionsharedSession];
//3、創(chuàng)建一個請求的任務NSURLSessionDataTask
NSURLSessionDataTask *task = [session dataTaskWithRequest:request];
NSURLSessionDataTask*task = [sessiondataTaskWithRequest:requestcompletionHandler:^(NSData*_Nullabledata,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {
//data 服務器返回給咱們需要的內(nèi)容
//JOSN解析
NSDictionary*result =
[NSJSONSerializationJSONObjectWithData:dataoptions:NSJSONReadingMutableContainerserror:nil];
NSLog(@"==%@",response);
NSLog(@"%@",result);
}];
//4、開啟任務
[taskresume];