發(fā)送請(qǐng)求?NSURLSession網(wǎng)絡(luò)請(qǐng)求會(huì)話
?1、NSURLSessionDataTask?數(shù)據(jù)類任務(wù)
NSURLSessionUploadTask?上傳類任務(wù)
?2宰译、NSURLSessionDownloadTask?下載類任務(wù)
?發(fā)送請(qǐng)求的流程:
?1、準(zhǔn)備請(qǐng)求(NSURLRequest)
? eg:王文強(qiáng)借東西的那句話
?2、創(chuàng)建一個(gè)網(wǎng)絡(luò)請(qǐng)求會(huì)話(NSURLSession)
? eg:王文強(qiáng)的嘴
?3、創(chuàng)建請(qǐng)求任務(wù)(NSURLSession-DataTask)
? eg:組織借東西的語(yǔ)言
?4、通過(guò)會(huì)話開(kāi)啟任務(wù)(resume)
? eg:萬(wàn)文強(qiáng)張嘴借東西
//1最铁、創(chuàng)建一個(gè)請(qǐng)求?(NSURLRequest)
?//(1)URL
?//(2)創(chuàng)建一個(gè)請(qǐng)求對(duì)象(1、需要添加內(nèi)容到請(qǐng)求對(duì)象的時(shí)候NSMutableURLRequest? 2垮兑、不需要添加內(nèi)容到請(qǐng)求對(duì)象的時(shí)候?NSURLRequest)
?NSURL?*url = [NSURL URLWithString:@"http://apis.baidu.com/heweather/weather/free?city=zhengzhou"];
?NSMutableURLRequest?*request = [NSMutableURLRequest requestWithURL:url];
?//get冷尉、post?都是發(fā)送一個(gè)內(nèi)容(參數(shù))到服務(wù)器端
?//get:把要送的內(nèi)容拼接到URL字符串后面 常用?隔開(kāi)?(1系枪、把要發(fā)送的內(nèi)容暴露在URL的字符串中雀哨,不可以發(fā)送密碼隱私? 2、URL的字符串長(zhǎng)度是有限制的(1kb)發(fā)送內(nèi)容過(guò)大不能使用)
//設(shè)置請(qǐng)求方式
[requset?setHTTPMethod:@"get"];
?//apikey?請(qǐng)求頭
[request?addValue:@"800df6eb77392d2205b55cfccbcc1662"forHTTPHeaderField:@"apikey"];
?//2私爷、創(chuàng)建NSURLSession會(huì)話
?NSURLSession?*session = [NSURLSession sharedSession];
?//3雾棺、創(chuàng)建一個(gè)請(qǐng)求的任務(wù)NSURLSessionDataTask
//? ? NSURLSessionDataTask *task = [session dataTaskWithRequest:request];
?NSURLSessionDataTask?*task = [session?dataTaskWithRequest:request?completionHandler:^(NSData?*?_Nullable?data,?NSURLResponse?*?_Nullable?response,?NSError?*?_Nullable?error) {
?//data?服務(wù)器返回給咱們需要的內(nèi)容
?//JOSN解析
?NSDictionary?*result = [NSJSONSerialization JSONObjectWithData:data?options:NSJSONReadingMutableContainers error:nil];
?NSLog(@"==%@",response);
?NSLog(@"%@",result);
? ? }];
?//4、開(kāi)啟任務(wù)
[task?resume];