AFNetworkingを使ってJSONと画像を送ってみる
ライブラリ導入までの無駄な紆余曲折は前回の通り。
本題、通信ライブラリ、AFNetworkingを導入する。
AFNetworking/AFNetworking · GitHub
ネットワーク通信回りのライブラリで、Androidで言えばVolleyに近いですね。
リンゴ社が推してるわけではありませんが。
今回やりたかったのはJSONのテキストと画像をPOSTして、結果のJSONを受け取ること。
公式のREADMEのMulti-Part Request が一番近そう。
サンプルのコードでは画像がローカルに保存されているパスだったが、
UIImageとして持っている画像を送りたかったので、先にUIImageからNSDataに変換。
サンプルの
本題、通信ライブラリ、AFNetworkingを導入する。
AFNetworking/AFNetworking · GitHub
ネットワーク通信回りのライブラリで、Androidで言えばVolleyに近いですね。
リンゴ社が推してるわけではありませんが。
今回やりたかったのはJSONのテキストと画像をPOSTして、結果のJSONを受け取ること。
公式のREADMEのMulti-Part Request が一番近そう。
サンプルのコードでは画像がローカルに保存されているパスだったが、
UIImageとして持っている画像を送りたかったので、先にUIImageからNSDataに変換。
NSData *imageData = UIImageJPEGRepresentation(image, 1.0);
サンプルの
[formData appendPartWithFileURL:filePath name:@"image" error:nil];部分を
[formData appendPartWithFileData:imageData name:@"image" fileName:@"tmp.png" mimeType:@"image/jpeg"];上記のように変更する。
[manager POST:@"http://hoge.fuga.com/" parameters:param constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { [formData appendPartWithFileData:imageData name:@"image" fileName:@"tmp.png" mimeType:@"image/jpeg"]; } success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Success: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }];