如何使用okhttp从多部分表单文件上传中获取服务器响应

问题描述 投票:0回答:1

我正在将文件上传到我的服务器,并期待 JSON 响应。我在我的 Android 应用程序上使用 okhttp,并像这样上传文件:

// create request body from file to upload
RequestBody fileBody = RequestBody.create(new File(multimediaFilePath), MediaType.parse(contentType));
MultipartBody multipartBody = new MultipartBody.Builder()
                        .setType(MultipartBody.FORM)
                        .addFormDataPart("multimediaFile", "profile.jpg", fileBody)
                        .addFormDataPart("multimediaFormat", fileExtension)
                        .build();

// create request object
Request requestObj = new Request.Builder()
                    .url(url)
                    .post(multipartBody)
                    .build();

// call okhttp client
OkHttpClient httpClient = new OkHttpClient();
Response responseObj = httpClient.newCall(requestObj).execute();

// get server response if successful call
if (responseObj.isSuccessful())
  response = responseObj.body().toString();

问题是,我收到的响应不是服务器发送的响应,而是 okhttp 客户端的字符串函数 okhttp3.internal.http.RealResponseBody@5ff7632

有人可以帮我解决这个问题吗?

附注文件已成功上传。问题是,我无法获得服务器发回的响应

android okhttp
1个回答
0
投票

您应该使用 OkHttp 的

string()
函数,而不是 Java 的
toString()
函数。

response = responseObj.body().string();
© www.soinside.com 2019 - 2024. All rights reserved.