2013/01/26

[Objective-C][iOS]multipart/form-data形式で画像をPOSTする

Google App Engineに向けてiOSから画像データをPOSTする処理を考えていました。

Instgramを見てみると、サーバーは違えども、ASIHTTPRequestライブラリを使っているようだし、stack overflowを見ても、そのライブラリを使った方がいいみたいなコメントがあったけど、いまいち、使う気になれず。

そこで、Objective-Cでmultipart/form-data形式でPOSTするのエントリーを見ながら素直に実装するが、サーバー側でエラーが発生してしまう。

なんでだろうーっと思った結果、下記のコードを追加することでエラーを取ることができました。

[data appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", key1,key2] dataUsingEncoding:NSUTF8StringEncoding]];
[data appendData:[@"Content-Type: image/jpeg\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
この2行を追加しなかったために、実装するのに丸々3ヶ月近くかかりました。

結果的にできたので、すっげーほっとした。

ただ、上の処理を追加しなくてもamazonのcloudサービスにはアップできるかもしれないし、Windows Azureにもできるかもしれない。

今回のケースは、あくまで、google app engineとして必要だということです。

これを追加しなくても、画像をアップロードできる方法があったら、コメントいただけると幸いです。

0 コメント:

コメントを投稿