问题
在使用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);











网友评论