網絡之NSURLSession

  • get請求
    -1
 // 獲得NSURLSession對象
    NSURLSession *session = [NSURLSession sharedSession];
    
    // 創(chuàng)建任務
    NSURLSessionDataTask *task = [session dataTaskWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/login?username=123&pwd=4324"]] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);
    }];
    // 啟動任務
    [task resume];

-2

// 獲得NSURLSession對象
    NSURLSession *session = [NSURLSession sharedSession];
    
    // 創(chuàng)建任務
    NSURLSessionDataTask *task = [session dataTaskWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/login?username=123&pwd=4324"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);
    }];
    
    // 啟動任務
    [task resume];

  • post請求
    -1
 // 獲得NSURLSession對象
    NSURLSession *session = [NSURLSession sharedSession];
    
    // 創(chuàng)建請求
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/login"]];
    request.HTTPMethod = @"POST"; // 請求方法
    request.HTTPBody = [@"username=520it&pwd=520it" dataUsingEncoding:NSUTF8StringEncoding]; // 請求體
    
    // 創(chuàng)建任務
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);
    }];
    
    // 啟動任務
    [task resume];

-2 文件下載

 // 獲得NSURLSession對象
    NSURLSession *session = [NSURLSession sharedSession];
    
    // 獲得下載任務
    NSURLSessionDownloadTask *task = [session downloadTaskWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_01.mp4"] completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
        // 文件將來存放的真實路徑
        NSString *file = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];
        
        // 剪切l(wèi)ocation的臨時文件到真實路徑
        NSFileManager *mgr = [NSFileManager defaultManager];
        [mgr moveItemAtURL:location toURL:[NSURL fileURLWithPath:file] error:nil];
    }];
    
    // 啟動任務
    [task resume];

--3 文件下載(通過代理方法監(jiān)聽下載過程)

// 獲得NSURLSession對象
    NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc] init]];
    
    // 獲得下載任務
    NSURLSessionDownloadTask *task = [session downloadTaskWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_01.mp4"]];
    
    // 啟動任務
    [task resume];

//切記代理對象遵守<NSURLSessionDownloadDelegate>協(xié)議
/**
 * 1.接收到服務器的響應
 */

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
{
    NSLog(@"%s", __func__);
    
    // 允許處理服務器的響應,才會繼續(xù)接收服務器返回的數據
    completionHandler(NSURLSessionResponseAllow);
    
    // void (^)(NSURLSessionResponseDisposition)
}

/**
 * 2.接收到服務器的數據(可能會被調用多次)
 */
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
    NSLog(@"%s", __func__);
}

/**
 * 3.請求成功或者失?。ㄈ绻。琫rror有值)
 */
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
    NSLog(@"%s", __func__);
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • NSURLSession 使用步驟使用NSURLSession對象創(chuàng)建Task,然后執(zhí)行Task -(void)g...
    BEYOND黃閱讀 1,000評論 0 0
  • 1.NSURLSession 本節(jié)主要涉及NSURLSession的兩個get請求/一個post請求NSURLSe...
    SoftKnife閱讀 2,657評論 9 19
  • NSURLSession概述1. NSURLSession session類型NSURLSession包括下面3種...
    瞎嘚嘚閱讀 1,983評論 2 2
  • iOS開發(fā)系列--網絡開發(fā) 概覽 大部分應用程序都或多或少會牽扯到網絡開發(fā),例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 4,066評論 2 7
  • 文|靜水流深思 有人說 詩歌與世界獨立 十人者 九人消失 八人入土 七人瘋癲 六人受傷 五人孤苦 四人同情 三人批...
    一日蜉蝣君閱讀 217評論 0 4

友情鏈接更多精彩內容