okhttp報錯:java.lang.IllegalStateException: closed

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

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章