iOS-->使用NSURLSession發送請求的基本方式

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];

}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容