You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OkHttp实现多表单文件上传时如何获取服务器响应

解决OkHttp上传文件后无法获取正确服务器响应的问题

问题出在你获取响应内容的方式上:直接调用responseObj.body().toString()得到的是ResponseBody对象的默认字符串表示(也就是你看到的okhttp3.internal.http.RealResponseBody@5ff7632),并非服务器返回的实际JSON内容。

正确获取响应内容的方法

需要使用ResponseBody提供的string()方法来读取响应体的文本内容,同时要注意正确关闭响应体避免资源泄漏:

修改你的响应处理代码:

// get server response if successful call
if (responseObj.isSuccessful()) {
    try (ResponseBody responseBody = responseObj.body()) {
        if (responseBody != null) {
            response = responseBody.string();
        }
    } catch (IOException e) {
        e.printStackTrace();
        // 这里可以添加异常处理逻辑,比如提示用户获取响应失败
    }
}

关键说明

  • string()方法会将整个响应体的内容读取为字符串,适合你期望的JSON响应场景;
  • 使用try-with-resources语法(Java 7+支持)可以自动关闭ResponseBody,避免OkHttp的资源泄漏问题;
  • 同步调用execute()可能抛出IOException,必须添加异常捕获;
  • 如果响应体是大文件,建议使用byteStream()或source()方法流式读取,避免内存溢出。

内容的提问来源于stack exchange,提问作者Rohitesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:07:14