サーバーと通信する必要がある Android アプリを作成しています。OkHttp3 が使用する MultipartBody を作成するのに苦労しています。私のコードは次のようになります。
OkHttpClient client = new OkHttpClient();
try
{
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("someKey1", "someString1")
.addFormDataPart("someKey2", "someString2")
.build();
System.out.println(requestBody.toString());
Request request = new Request.Builder()
.url("server url")
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
return response;
}
catch (IOException e)
{
e.printStackTrace();
return false;
}
これは、誰もが使用するほぼ標準的なコードです。サーバーはリクエストを受け取りますが、リクエストから MultipartBody を取得できません。マルチパートボディを印刷すると、次のようになります。
I/System.out: okhttp3.MultipartBody@14040826
私の質問は次のとおりです。なぜ私のデータが含まれていないのですか?ライブラリがありませんか (gradle にコンパイル 'com.squareup.okhttp3:okhttp:3.2.0' を含め、MultipartBody がこのライブラリの一部であると想定しています)? MultipartBody はどのように見えるはずですか?
FormBody も送信してみましたが、同じように見えます。