【androidJava】MultipartBodyで画像をpost形式で送る方法

非同期通信で画像をpost形式で送るには、MultipartBodyオブジェクトを用意します。

画像のurlを取得したりアップロードするときに主に用いられますが、通常使っている

FormBody.Builder()と形式はあまり変わりません。成功時に引数responseの中に画像の名前が格納されます。

試しに20行目のSystem.out.printlnを見れば画像の名前が取得できていると思います。

</pre>
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("active", "fileUpload")
.addFormDataPart("app0", resultUri.getPath(),
RequestBody.create(MediaType.parse("image/jpeg"), String.valueOf(resultUri)))
.build();
Request request = new Request.Builder()
.url("http://fuga/hoge.php")
.post(requestBody)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}

@Override
public void onResponse(Call call, Response response) throws IOException {
System.out.println(response.body().string());
}
});
<pre>

一番最初のaddFormDataPartは、画像が送られてきた時にそのurlを返すapiと仮定して書いたので、試す場合はphpなどで

代用するものを作ってください。

以上でMultipartBodyオブジェクトの使い方は終了になります。

変換の時がちょいめんどいな程度で、後は普通のOKHttp通信と変わらないっぽい。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG