1.Get請(qǐng)求
-(void)getSession{
//1.快捷方式獲得session對(duì)象
NSURLSession *session = [NSURLSession sharedSession];
//2.創(chuàng)建請(qǐng)求路徑
NSURL *getUrl = [NSURL URLWithString:@""];
//3.通過(guò)url初始化task,在block內(nèi)對(duì)返回的數(shù)據(jù)進(jìn)行處理
NSURLSessionTask *task = [session dataTaskWithURL: getUrl completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSString *jsonString = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"%@",jsonString);
}];
//4.啟動(dòng)任務(wù)
[task resume]; //所有類型的task都要啟動(dòng)
}
2.POST請(qǐng)求
-(void)postSession
{
//創(chuàng)建請(qǐng)求路徑
NSURL *postUrl = [NSURL URLWithString:@""];
//創(chuàng)建請(qǐng)求對(duì)象
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:postUrl];
//設(shè)置請(qǐng)求方式
postRequest.HTTPMethod = @"POST";
postRequest.HTTPBody = [@"" dataUsingEncoding:NSUTF8StringEncoding];
//快捷方式獲得session對(duì)象
NSURLSession *session = [NSURLSession sharedSession];
//通過(guò)url初始化task避乏,在block內(nèi)部對(duì)返回的數(shù)據(jù)進(jìn)行處理
NSURLSessionTask *postTask = [session dataTaskWithURL:postUrl completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSString *jsonString = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSLog(@"%@",jsonString);
}];
[postTask resume]; //執(zhí)行任務(wù)
}
3.使用NSURLSessionDataDelegate處理網(wǎng)絡(luò)請(qǐng)求
- session的delegate為只讀,所以要通過(guò)以下方法創(chuàng)建session并設(shè)置代理
- //第一個(gè)參數(shù):配置參數(shù)
- //第三個(gè)參數(shù):NSOperationQueue颤枪,請(qǐng)求放在隊(duì)列里執(zhí)行
//1.創(chuàng)建session并設(shè)置代理
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];
//2.通過(guò)url初始化task
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@""]]];
//3.啟動(dòng)任務(wù)
[dataTask resume];
實(shí)現(xiàn) NSURLSessionDataDelegate
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
{
//接收到服務(wù)器的響應(yīng)
//允許處理服務(wù)器響應(yīng),才能繼續(xù)接受服務(wù)器返回的數(shù)據(jù)
completionHandler(NSURLSessionResponseAllow);
}
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data
{
//收到數(shù)據(jù)
//處理每次接收到的數(shù)據(jù)
}
簡(jiǎn)單的NSURLSession的使用淑际,大家參考哦????·