首页 > 解决方案 > 使用 okhttp3 时空 HTTP 获取响应正文

问题描述

我正在尝试向某个 url 发出 GET 请求 - 结果状态响应为 200 但响应正文非常奇怪 - okhttp3.internal.http.RealResponseBody@84f1f6e。我对任何网址都有这个结果(例如,“https://www.bbc.com/russia”)。下面是我的代码的快照:

val httpClient: OkHttpClient = OkHttpClient.Builder()
    .addInterceptor(LoggingInterceptor())
    .addNetworkInterceptor(StethoInterceptor())
    .build()


fun runCheckQualityPeriodic() {
    val request = Request.Builder()
        .url("https://www.bbc.com/russia")
        .build()

    val policy = StrictMode.ThreadPolicy.Builder().permitAll().build()
    StrictMode.setThreadPolicy(policy)

    val response = httpClient.newCall(request).execute()
    Logger.tag("krv").v("runCheckQualityPeriodic responce is " + response)
    val body = response.body().toString()
    Logger.tag("krv").v("runCheckQualityPeriodic responce body is " + body)
}

以下是 StethoInterceptor 的截图:

在此处输入图像描述 你知道我为什么会收到这样的结果吗?

标签: javakotlinokhttp

解决方案


toString()显示对开发人员友好的表示。要获得您需要更改的实际内容

response.body().toString()

response.body().string()

推荐阅读