第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

OKHttp 響應(yīng)失?。簀ava.lang.IllegalStateException:已關(guān)閉

OKHttp 響應(yīng)失?。簀ava.lang.IllegalStateException:已關(guān)閉

暮色呼如 2023-08-23 15:03:31
我請(qǐng)求鏈接以獲取 JSON,但 response.body().string() 值始終有錯(cuò)誤。另一種方法是,我將response.body().string()拆分為response.body()和字符串,但Android studio找不到ResponseBody。2路不行。請(qǐng)幫忙!String doGetRequest(String url) throws IOException {       Request request = new Request.Builder()            .url(url)            .build();    try (Response response = client.newCall(request).execute()) {        System.out.println(response.body().string());        //ResponseBody responseBody = response.body();        //String content = responseBody.string();        //System.out.println(content);        return response.body().string();    }}
查看完整描述

3 回答

?
明月笑刀無(wú)情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

response.body().string() → 您只能調(diào)用 string() 一次。


由于響應(yīng)正文可能很大,因此 OkHttp 不會(huì)將其存儲(chǔ)在內(nèi)存中,而是在您需要時(shí)將其作為流從網(wǎng)絡(luò)讀取。


當(dāng)您將正文作為 string() 讀取時(shí),OkHttp 將下載響應(yīng)正文并將其返回給您,而不保留對(duì)字符串的引用,如果沒有新請(qǐng)求,則無(wú)法下載兩次。


您不止一次地調(diào)用它。


try(..){

    System.out.println(response.body().string());// once

    return response.body().string();`// twice

 }

您可以通過調(diào)用一次將響應(yīng)保存在變量中,然后使用該變量進(jìn)行進(jìn)一步使用。


try(..){

  String responseData = response.body().string();//Be cautious about memory constraint here.

  System.out.println(responseData);

  return responseData;`

}


查看完整回答
反對(duì) 回復(fù) 2023-08-23
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

發(fā)生這種情況是因?yàn)?code>.string()只能調(diào)用一次

您可以通過以下方式解決該問題(Java):

ResponseBody responseBodyCopy = response.peekBody(Long.MAX_VALUE);
responseBodyCopy.string();

通過復(fù)制響應(yīng)正文,您可以避免使用.string()兩次


查看完整回答
反對(duì) 回復(fù) 2023-08-23
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

也許你正在像這樣的攔截器中關(guān)閉你的響應(yīng)


override fun intercept(chain: Interceptor.Chain): Response {

//...

val response = chain.proceed(builder.build())

response.close()

//...

}


查看完整回答
反對(duì) 回復(fù) 2023-08-23
  • 3 回答
  • 0 關(guān)注
  • 449 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)