OKHttp响应失败:java.lang.IllegalStateException:已关闭

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

我请求链接以获取JSON,但response.body()。string()值始终存在错误。另一种方式,我将response.body()。string()拆分为response.body()和字符串,但是Android studio找不到ResponseBody。 2种方式不起作用。请帮助!

String doGetRequest(String url) throws IOException {
       Request request = new Request.Builder()
            .url(url)
            .build();

    try (Response response = client.newCall(request).execute()) {
        System.out.println(response.body().string());
        //ResponseBody responseBody = response.body();
        //String content = responseBody.string();
        //System.out.println(content);
        return response.body().string();
    }
}
java android okhttp
1个回答
0
投票

response.body()。string()→您只能调用string()一次。

由于响应主体可能很大,因此OkHttp不会将其存储在内存中,因此会在需要时将其作为网络流读取。

[当您读取正文为string()时,OkHttp会下载响应正文并在不保留对该字符串的引用的情况下将其返回给您,如果没有新的请求,则无法两次下载它。

© www.soinside.com 2019 - 2024. All rights reserved.