国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Android】okhttp爆java.lang.IllegalStateException: closed的解決方法

這篇具有很好參考價值的文章主要介紹了【Android】okhttp爆java.lang.IllegalStateException: closed的解決方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

解決

java.lang.IllegalStateException: closed異常通常是由于OkHttp中的Response對象在調(diào)用response.body().string()后被關(guān)閉而導(dǎo)致的。

在代碼中,在onResponse()方法中如果兩次調(diào)用了response.body().string(),每次調(diào)用都會消耗掉響應(yīng)體并關(guān)閉Response對象。因此,當(dāng)?shù)诙握{(diào)用response.body().string()時,就會拋出java.lang.IllegalStateException: closed異常。

為了解決這個問題,可以將響應(yīng)體的內(nèi)容緩存起來,然后多次使用。下面是修改后的代碼示例:

public void onResponse(Call call, Response response) throws IOException {
    String responseBody = response.body().string(); // 緩存響應(yīng)體內(nèi)容


    if (!response.isSuccessful()) {
 
        callback.onComponentInitFinish(COMPONENT_TOKEN, ERROR_GET_TOKEN_FAIL, "獲取token失敗");
    } else {
        TokenInfoBean tokenInfoBean = mGson.fromJson(responseBody, TokenInfoBean.class);

        if (tokenInfoBean != null && tokenInfoBean.ret != null) {
            APIBase.okHandler.post(new Runnable() {
                public void run() {
                    KeyCenterCheckHelp.checkAndToast(tokenInfoBean.ret.code, tokenInfoBean.ret.message);
                }
            });
        }

        if (tokenInfoBean != null && tokenInfoBean.data != null) {
         
            savedToken = tokenInfoBean.data.token;
            tokenStartStamp = System.currentTimeMillis();
            tokenExpiredStamp = tokenStartStamp + tokenInfoBean.data.duration * 1000;
            callback.onComponentInitFinish(COMPONENT_TOKEN, 0, "");
        } else {
            
            callback.onComponentInitFinish(COMPONENT_TOKEN, tokenInfoBean.ret.code, tokenInfoBean.ret.message);
        }
    }
}

在修改后的代碼中,我們將response.body().string()的結(jié)果緩存在responseBody變量中,并在后續(xù)的邏輯中多次使用。這樣就避免了多次調(diào)用導(dǎo)致的異常。

請注意,這只是解決java.lang.IllegalStateException: closed異常的一種方式。確保在其他地方?jīng)]有關(guān)閉Response對象,以免引發(fā)其他類似的異常。
重要代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-657308.html

	  String responseBody = response.body().string(); // 緩存響應(yīng)體內(nèi)容

到了這里,關(guān)于【Android】okhttp爆java.lang.IllegalStateException: closed的解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決Caused by: java.lang.IllegalStateException:

    目錄 問題描述 解決方案 1. 修改JVM的-Xss參數(shù) 2. 檢查循環(huán)繼承依賴項 3. 更新相關(guān)庫和依賴 總結(jié) 在使用Java開發(fā)Web應(yīng)用程序時,我們有時會遇到? ?Caused by: java.lang.IllegalStateException? ??異常,其中包含一個關(guān)于StackOverflow錯誤的描述。這種錯誤可能會導(dǎo)致無法完成對Web應(yīng)用程

    2024年02月03日
    瀏覽(517)
  • 已解決java.lang.IllegalStateException: Duplicate key

    已解決java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key 是由于在使用 Map 或 Set 時,試圖將一個已經(jīng)存在的鍵值或元素添加到集合中而引發(fā)的異常。 下滑查看解決方法 要解決這個問題,可以采取以下步驟: 確保你使用

    2024年02月07日
    瀏覽(101)
  • 解決java.lang.IllegalStateException: Duplicate key異常

    解決java.lang.IllegalStateException: Duplicate key異常

    項目重啟后突然報這個異常 看日志應(yīng)該是在初始化字典,源代碼 這里的操作是把詞典list轉(zhuǎn)換成map,然后key沖突。 但我比對了一下數(shù)據(jù),沒有找到重復(fù)的dictValue,報這個錯有點(diǎn)莫名其妙。 最后的解決辦法參考了其他網(wǎng)友,得以順利解決,最后上修改后的代碼 Collectors.toMap 增

    2024年02月15日
    瀏覽(26)
  • 解決Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map ‘inteController‘

    解決Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map ‘inteController‘

    出現(xiàn)這個錯也可能會出現(xiàn)項目無法啟動的錯誤。完整錯誤是 一、錯誤出現(xiàn)原因 : ? ? ? ? controller層出現(xiàn)了重復(fù)的方法映射 ???????? ????????可以看到圖片中兩個方法的映射是一樣的,這是問題所在 解決方法也很簡單,既然已經(jīng)知道了問題所在那么解決起來也很簡單

    2024年02月10日
    瀏覽(95)
  • Java IDEA java.lang.IllegalStateException: Failed to introspect Class報錯原因和解決辦法

    Java IDEA java.lang.IllegalStateException: Failed to introspect Class報錯原因和解決辦法

    發(fā)現(xiàn)是因為 org.redisson:redisson.spring.boot.starter 3.10.6這個包引入不進(jìn)來導(dǎo)致的報錯 嘗試了clean invalid caches and restart都沒法解決后 放大招,查看maven右側(cè)Dependencies每一個點(diǎn)進(jìn)去看是否有jar包沖突,發(fā)現(xiàn)有一個包里有一個redis的包, 懷疑jar包沖突,嘗試把這個包exclusion掉,可以成功運(yùn)

    2024年02月04日
    瀏覽(29)
  • 詳細(xì)解決java中的Collectors.toMap引起的java.lang.IllegalStateException: Duplicate key xxx 的錯誤

    詳細(xì)解決java中的Collectors.toMap引起的java.lang.IllegalStateException: Duplicate key xxx 的錯誤

    今天,測試在禪道上給我指出一個正式環(huán)境 bug ,如下圖所示: 即 java.lang.IllegalStateException: Duplicate key 2 。 根據(jù) java.lang.IllegalStateException: Duplicate key 2 可知,這是 java 拋出的存在 2個重復(fù)鍵 的錯誤。 如果想要弄清楚錯誤原因,通過如下幾個步驟分析: 首先,看到這個錯誤信息

    2024年01月19日
    瀏覽(30)
  • Maximum upload size exceeded; nested exception is java.lang.IllegalStateException解決辦法

    一、問題描述 Springboot文件上傳時報錯:org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException: The field fileUrl exceeds its maximum permitted size of 10485760 bytes. 完整報錯

    2024年02月11日
    瀏覽(21)
  • 已解決:Unexpected exception during bean creation; nested exception is java.lang.IllegalStateException:

    已解決:Unexpected exception during bean creation; nested exception is java.lang.IllegalStateException:

    這個異常通常是由于在使用 Spring Cloud Feign 客戶端進(jìn)行負(fù)載均衡時缺少相關(guān)的依賴引起的。具體來說,它提示你忘記在項目的依賴中包含? spring-cloud-starter-loadbalancer 。 spring-cloud-starter-loadbalancer ?是用于支持負(fù)載均衡功能的 Spring Cloud Starter 組件之一。它提供了負(fù)責(zé)將請求分發(fā)

    2024年02月08日
    瀏覽(26)
  • 解決java.lang.IllegalStateException: Cannot call sendError() after the response has been committed異常

    解決java.lang.IllegalStateException: Cannot call sendError() after the response has been committed異常

    相信大家自己在用spring boot寫restful風(fēng)格的接口時特別是寫文件下載或文件導(dǎo)出時會碰到j(luò)ava.lang.IllegalStateException: Cannot call sendError() after the response has been committed這樣的bug,很多人可能一臉困惑,就好奇為什么我文件都已經(jīng)可以正常導(dǎo)出了,為什么在日志中還是會出現(xiàn)這樣的報錯

    2024年02月16日
    瀏覽(46)
  • 【異常解決】java.lang.IllegalStateException: No primary or single unique constructor found for interface

    【異常解決】java.lang.IllegalStateException: No primary or single unique constructor found for interface

    Springboot + vue3 批量刪除規(guī)則接口:前端請求如下 后端服務(wù)接口請求的方法如下: 結(jié)果報錯,詳情如下: java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List 前端請求不變,后端服務(wù)接口請求的方法參數(shù)上添加 @RequestBody 即可。 本文完結(jié)!

    2024年02月05日
    瀏覽(102)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包