我正在编写一个需要与服务器通信的 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 中包含了 compile 'com.squareup.okhttp3:okhttp:3.2.0' 并假设 MultipartBody 是该库的一部分)?MultipartBody 应该是什么样子?
我也尝试发送 FormBody,但看起来一样。