今天调用接口的时候报错了,java.lang.IllegalStateException: closed
打断点调试发现运行都没什么问题,就是返回onError,后来发现是我callback里面response.body().string()调用了2次以上。
分析
OkHttp请求回调中response.body().string()只能有效调用一次在调用了response.body().string()方法之后,response中的流会被关闭,我们需要创建出一个新的response给应用层处理。
修改后代码
public abstract class StringCallback extends Callback<String>
{
@Override
public String parseNetworkResponse(Response response) throws IOException
{
String sss=response.body().string();
Log.e("strcallback",sss);
return sss;//OkHttp请求回调中response.body().string()只能有效调用一次
}
}