iOS網路-AFNetworking基本使用,檔案下載,上傳

來源:互聯網
上載者:User

標籤:

發送GET請求

-(void)get{    //1.建立會話管理者    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    NSDictionary *dictM = @{                            @"username":@"520it",                            @"pwd":@"520it",                            @"type":@"JSON"                            };    //2.發送請求    /*     第一個參數:請求路徑的一部分(NSString)        以前: http://120.25.226.186:32812/login?username=123&pwd=123&type=JSON             協議頭+主機地址+介面名稱+?+參數1&參數2        現在: http://120.25.226.186:32812/login             協議頭+主機地址+介面名稱     第二個參數:參數,以字典方式傳遞     第三個參數:progress 進度 傳遞nil     第四個參數:success 成功之後的回調        task:請求Task        responseObject:響應體        task.response:回應標頭資訊     第五個參數:failure 失敗之後的回調        task:請求Task        error:錯誤資訊     */    [manager GET:@"http://120.25.226.186:32812/login" parameters:dictM progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {        NSLog(@"請求成功---%@--%@",responseObject,[responseObject class]);    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {         NSLog(@"請求失敗----%@",error);    }];}

發送POST請求

-(void)post{    //1.建立會話管理者    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    NSDictionary *dictM = @{                            @"username":@"520it",                            @"pwd":@"520",                            @"type":@"JSON"                            };    //2.發送請求    /*     第一個參數:請求路徑的一部分(NSString)     以前: http://120.25.226.186:32812/login?username=123&pwd=123&type=JSON     協議頭+主機地址+介面名稱+?+參數1&參數2     現在: http://120.25.226.186:32812/login     協議頭+主機地址+介面名稱     第二個參數:參數,以字典方式傳遞     第三個參數:progress 進度 傳遞nil     第四個參數:success 成功之後的回調     task:請求Task     responseObject:響應體     task.response:回應標頭資訊     第五個參數:failure 失敗之後的回調     task:請求Task     error:錯誤資訊     */    [manager POST:@"http://120.25.226.186:32812/login" parameters:dictM progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {        NSLog(@"請求成功---%@--%@",responseObject,[responseObject class]);    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {        NSLog(@"請求失敗----%@",error);    }];}

 檔案下載

//1.建立會話管理者    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/resources/images/minion_01.png"]];    //2.建立下載任務    /*     第一個參數:請求對象     第二個參數:progress 進度回調        downloadProgress.completedUnitCount:已經完成的大小        downloadProgress.totalUnitCount:檔案的總大小     第三個參數:destination 自動完成檔案剪下操作        傳回值:該檔案應該被剪下到哪裡        targetPath:臨時路徑 tmp NSURL        response:回應標頭     第四個參數:completionHandler 下載完成回調        filePath:真實路徑 == 第三個參數的傳回值        error:錯誤資訊     */    NSURLSessionDownloadTask *downlaodTask = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {        //計算檔案的下載進度        NSLog(@"%f",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);    } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {        //檔案的全路徑        NSString *fullpath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];        NSURL *fileUrl = [NSURL fileURLWithPath:fullpath];        NSLog(@"%@\n%@",targetPath,fullpath);        return fileUrl;    } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {        NSLog(@"%@",filePath);    }];    //3.執行Task    [downlaodTask resume];

檔案上傳

-(void)uplaod{    //1.建立會話管理者    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    NSDictionary *dictM = @{                            @"username":@"123"                            };    //2.上傳檔案    /*     第一個參數:請求路徑     第二個參數:非檔案參數,以字典傳遞     第三個參數:constructingBodyWithBlock        拼接資料 檔案參數     第四個參數:progress 進度回調     第五個參數:success 成功回調     第六個參數:failure 失敗回調     */    [manager POST:@"http://120.25.226.186:32812/upload" parameters:dictM constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {        UIImage *image = [UIImage imageNamed:@"Snip20160118_860"];        NSData *imageData = UIImagePNGRepresentation(image);        /*         第一個參數:要上傳的檔案的位元據         第二個參數:參數名稱是規定的 此處為file         第三個參數:儲存的名稱         第四個參數:mimeType 檔案的資料類型         */        [formData appendPartWithFileData:imageData name:@"file" fileName:@"12345.png" mimeType:@"image/png"];    } progress:^(NSProgress * _Nonnull uploadProgress) {        NSLog(@"%f",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {        NSLog(@"請求成功---%@",responseObject);    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {          NSLog(@"請求失敗---%@",error);    }];}
-(void)uplaod2{    //1.建立會話管理者    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    NSDictionary *dictM = @{                            @"username":@"123"                            };    //2.上傳檔案    /*     第一個參數:請求路徑     第二個參數:非檔案參數,以字典傳遞     第三個參數:constructingBodyWithBlock     拼接資料 檔案參數     第四個參數:progress 進度回調     第五個參數:success 成功回調     第六個參數:failure 失敗回調     */    [manager POST:@"http://120.25.226.186:32812/upload" parameters:dictM constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {        NSURL *fileUrl = [NSURL fileURLWithPath:@"/Users/xiaomage/Desktop/Snip20160118_860.png"];        /*         第一個參數:檔案的URL路徑         第二個參數:參數名稱是規定的 此處為file         第三個參數:儲存的名稱         第四個參數:mimeType 檔案的資料類型         */        //[formData appendPartWithFileURL:fileUrl name:@"file" fileName:@"1.png" mimeType:@"image/png" error:nil];        //簡便方法 會將Snip20160118_860.png作為檔案名稱字        [formData appendPartWithFileURL:fileUrl name:@"file" error:nil];    } progress:^(NSProgress * _Nonnull uploadProgress) {        NSLog(@"%f",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {        NSLog(@"請求成功---%@",responseObject);    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {        NSLog(@"請求失敗---%@",error);    }];}

 

iOS網路-AFNetworking基本使用,檔案下載,上傳

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.