关于OKHttp使用时,报错 java.lang.Illegal

2021-12-21  本文已影响0人  果汁味Studio
问题

在使用okhttp时,总出现异常:java.lang.IllegalStateException: closed

原因

一旦连续两次调用response.body().string(),就会抛出该异常。
原来在okhttp请求回调中,response.body().string()只能有效调用一次,一旦调用数据流已经关闭了,再次调用就会提示closed。

解决方案

通过BufferedSource获取

 ResponseBody responseBody = response.body();
 BufferedSource source = responseBody.source();
 source.request(Long.MAX_VALUE);
 Buffer buffer = source.buffer();
 Charset UTF8 = Charset.forName("UTF-8");
 String body = buffer.clone().readString(UTF8);
上一篇 下一篇

猜你喜欢

热点阅读