今天調用接口的時候報錯了,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()只能有效調用一次
}
}