大多数网友反馈的是,多次读取response.body().string()
导致的,这里情况有些不一样。的确只调用了一次,如下:
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
ResponseBody respBody = response.body();
if(respBody !=null){
return respBody.string();
}else {
return "";
}
} catch (IOException e) {
throw new RuntimeException(e);
}
没有两次调用了,报了错:
不用多解释,还是在读取流的时候,关闭了。继续排查。
发现了一个低级错误。在断点观察中有进行string()
读取:
移除watch,后代码正常通过.
在观察流操作的时候,watch和expression需要谨慎