2016-04-04 16 views
0

バックエンドにいくつかのデータとNSIIオブジェクトとしてのUIImageを含む投稿要求を送信したいと思います。問題は、私はAFNetworking 3.0でどのようにそれをするのか分かりません。AFNetworking 3.xのデータと画像付きの投稿要求

これまでの私のコード:

NSString *url = [NSString stringWithFormat:@"%@%@", baseURL, @"/postProjectNote"]; 

NSMutableDictionary *dic = [[NSMutableDictionary alloc]init]; 

[dic setObject:session forKey:@"session"]; 
[dic setObject:timestamp forKey:@"timestamp"]; 
[dic setObject:project_id forKey:@"project_id"]; 
[dic setObject:type forKey:@"type"]; 

NSData imagedata = UIImageJPEGRepresentation(myUIImage, 0.8); 

私は、プログレスバーの任意の並べ替えをする必要はありません。リクエストが成功したかどうかは、結果が必要です。バックエンド(Laravel 5)は私にjson文字列を与えます。私はフォームデータで送信する必要があります。

始めてもよろしいですか?

答えて

2

使用このコードをAFNetworkingを使用して画像を投稿する:

AFHTTPRequestOperationManager* manager = [[AFHTTPRequestOperationManager alloc] init]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"]; 

NSData *imageData = UIImageJPEGRepresentation(image, 0.5); 
NSMutableDictionary *paramDict = [NSMutableDictionary new]; // Add additional parameters here 
AFHTTPRequestOperation *op = [manager POST:UPDATE_PROFILE_IMAGE parameters:paramDict constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:imageData name:@"file" fileName:@"filename" mimeType:@"image/jpeg"]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    if (success) { 
     // Success 
    } 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Failure 
}]; 
[op start]; 
+0

これはAFNetworking 2.xのない3.xでは動作しますしかし、移行チュートリアルを使用すれば、簡単に秘密裏に秘密情報を入手できます。 – Dafen

0
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);  
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    [manager.requestSerializer setValue:token forHTTPHeaderField:@"Authorization"]; 
    [manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
    manager.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"text/html",@"application/json",nil]; 

    [manager POST:encoded parameters:"the params you want to pass" constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { 
    [formData appendPartWithFileData:imageData 
           name:"image name with timestamp" 
          fileName:@"image_upload_file" 
          mimeType:[NSString mimeTypeForImageData:data]]; 
} progress:^(NSProgress * _Nonnull uploadProgress) { 
    //DLog(@"Progress = %@",uploadProgress); 
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 
    //DLog(@"Response = %@",responseObject); 
    completion(YES,responseObject,nil); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { 
    completion(NO,nil,error); 
    //DLog(@"Error: %@", error); 
}]; 
関連する問題