1. 程式人生 > >使用AFN ,通過post請求上傳圖片,帶請求頭

使用AFN ,通過post請求上傳圖片,帶請求頭

//要上傳的圖片

UIImage *image = [UIImage imageNamed:@"image"];

//傳送圖片請求 ,0.5是上傳圖片的質量

NSData *data = UIImageJPEGRepresentation(image,0.5);

// 在網路開發中,上傳檔案時,是檔案不允許被覆蓋,檔案重名

// 可以在上傳時使用當前的系統事件作為檔名

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

// 設定時間格式

formatter.dateFormat = @"yyyyMMddHHmmss";

NSString *str = [

formatter stringFromDate:[NSDate date]];

NSString *fileName = [NSString stringWithFormat:@"%@.png", str];

//上傳帶的引數

NSDictionary *iconDic = @{@"qquuid":fileName,@"qqfilename":@"public.image",@"process":@"150x150"};

AFHTTPSessionManager *manager2 = [AFHTTPSessionManager manager];//初始化請求物件

//新增請求頭

[manager2.requestSerializer setValue:@"appwebkit4fm" forHTTPHeaderField:@"User-Agent"];

manager2.responseSerializer = [AFHTTPResponseSerializer serializer];//設定伺服器允許的請求格式內容

//上傳圖片/文字,只能同POST

[manager2 POST:@"http://app.jyyk12.com/ecloud/personal/updateimg.do?access_token=fa2374aa34095cb8b714f6f015465944" parameters:iconDic constructingBodyWithBlock:^(id_Nonnull formData) {

[formData appendPartWithFileData:data name:@"avatar" fileName:fileName mimeType:@"image/jpg"];

} progress:^(NSProgress * _Nonnull uploadProgress) {

} success:^(NSURLSessionDataTask * _Nonnull task, id_Nullable responseObject) {

NSDictionary *resultData = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];

NSLog(@"resultData:%@%@",resultData,[resultData objectForKey:@"message"]);

NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];

NSString *code = [numFormatter stringFromNumber:[resultData objectForKey:@"code"]];

if ([code isEqualToString:@"200"]){

NSLog(@"上傳成功");

}

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];