發送GET請求app
-(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請求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); }]; }
文件下載spa
//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];
文件上傳code
-(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); }]; }