xcode.png
NSURLSession
用NSURLSession發送Get請求的三種方式
第一種:
-(void)request1{
//創建請求路徑
NSURL *url=[NSURL URLWithString:@"http://XXXXXXX/login?username=wujian&pwd=wujian&type=JSON"];
//創建請求對象
NSURLRequest *request=[NSURLRequest requestWithURL:url];
//創建會話對象
NSURLSession *session=[NSURLSession sharedSession];
//根據會話對象來創建請求任務 任務中的代碼塊默認在子線程中執行
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
}];
//執行任務(發送請求)
[dataTask resume];
}
第二種:
-(void)request2{
//創建請求路徑
NSURL *url=[NSURL URLWithString:@"http://XXXXXX/login?username=wujian&pwd=wujian&type=JSON"];
//創建會話對象
NSURLSession *session=[NSURLSession sharedSession];
//根據會話對象創建請求任務
NSURLSessionDataTask *dataTask=[session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
NSLog(@"%@",[NSThread currentThread]);
}];
[dataTask resume];
}
第三種:
-(void)request3{
//創建請求路徑
NSURL *url=[NSURL URLWithString:@"http://1XXXXXX/login?username=wujian&pwd=wujian&type=JSON"];
//創建請求對象
NSURLRequest *requeset=[NSURLRequest requestWithURL:url];
//創建會話對象 這里的隊列如果傳nil,則是在子線程中執行
NSURLSession *session=[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc]init]];
//根據會話對象創建請求任務
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:requeset];
[dataTask resume];
}
//當接收到來自服務器響應的時候調用
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{
self.data=[NSMutableData data];
//告訴系統如何處理從服務器返回的數據
completionHandler(NSURLSessionResponseAllow);
}
//當接收到從服務器返回的數據的時候調用
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{
//拼接接收到的數據
[self.data appendData:data];
}
//當請求完成或者出錯的時候調用
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{
NSLog(@"%@",[[NSString alloc]initWithData:self.data encoding:NSUTF8StringEncoding]);
}
使用NSURLSession發送Post請求
-(void)post{
//獲取請求路徑
NSURL *url=[NSURL URLWithString:@"http://XXXXX/login"];
//創建可變的請求對象
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];
//設置請求方法
request.HTTPMethod=@"POST";
//設置參數:請求體
request.HTTPBody=[@"username=wujian&pwd=wujian&type=JSON"dataUsingEncoding:NSUTF8StringEncoding];
//創建會話對象
NSURLSession *session=[NSURLSession sharedSession];
//根據會話對象來創建請求任務
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
NSLog(@" %@",[NSThread currentThread]);
}];
//提交請求
[dataTask resume];
}