標籤:
發送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基本使用,檔案下載,上傳