http urlconnection getcontentlength總返回值為-1
最近在做一個自動更新的功能,點選更新下載之後,進度條不走動。之前一直用的模擬器執行,沒有發現任何問題,後來真機測試時就出現了進度條不走動的問題。經斷點除錯發現,當獲取下載檔案大小getContentLength()的時候,返回結果是-1。於是上網搜了一下HttpURLConnection及getContentLength(),發現2.2版本以上HttpURLConnection跟服務互動採用了”gzip”壓縮:參考api:By default, this implementation of HttpURLConnection requests that servers use gzip compression. Since getContentLength() returns the number of bytes transmitted, you cannot use that method to predict how many bytes can be read from getInputStream(). Instead, read that stream until it is exhausted: whenread() returns -1.
解決辦法:在http request的head中設定如下引數即可:conn.setRequestProperty(“Accept-Encoding”, “identity”);
相關文章
- java springboot http get請求 URLConnection get 返回值 亂碼JavaSpring BootHTTP
- URLConnection類,HttpURLConnection類的使用和總結HTTP
- HTTP 返回值標準含義HTTP
- 函式返回值1函式
- HTTP總結HTTP
- http1HTTP
- http2與http1HTTP
- [前端 · 面試 ]HTTP 總結(一)—— HTTP 概述前端面試HTTP
- Java中用URLConnection查詢Web檔案大小JavaWeb
- 圖解HTTP(1)圖解HTTP
- [前端 · 面試 ]HTTP 總結(二)—— HTTP 訊息前端面試HTTP
- 程式設計疑問:文字與檔案、HTTP 1 0 與 HTTP 1 1程式設計HTTP
- http2.0總結HTTP
- HTTP返回碼總結HTTP
- HTTP Client使用總結HTTPclient
- 使用URLConnection物件獲取網路資源資訊物件
- [前端 · 面試 ]HTTP 總結(三)—— HTTP 請求方法前端面試HTTP
- [前端 · 面試 ]HTTP 總結(四)—— HTTP 狀態碼前端面試HTTP
- [前端 · 面試 ]HTTP 總結(七)—— HTTP 快取概述前端面試HTTP快取
- [前端 · 面試 ]HTTP 總結(八)—— HTTP 強快取前端面試HTTP快取
- 一文讀懂 HTTP/1HTTP/2HTTP/3HTTP
- [前端 · 面試 ]HTTP 總結(九)—— HTTP 協商快取前端面試HTTP快取
- 【前端 · 面試 】HTTP 總結(十)—— HTTP 快取應用前端面試HTTP快取
- [前端 · 面試 ]HTTP 總結(十)—— HTTP 快取應用前端面試HTTP快取
- http headers 大總結HTTPHeader
- HTTP 快取控制總結HTTP快取
- HTTP-over-QUIC將正式成為HTTP/3HTTPUI
- document.body.scrollTop返回值為0解決方案
- SpringMVC-方法四種型別返回值總結SpringMVC型別
- HTTP快取筆記(1)HTTP快取筆記
- 對於http/http2的一些總結HTTP
- TCP/IP、HTTP和Socket總結TCPHTTP
- HTTP協議知識總結HTTP協議
- http content-type總結HTTP
- 深入理解http1.x、http 2和httpsHTTP
- 為HttpClient開啟HTTP/2HTTPclient
- 使用mysql 統計函式 結果為null時返回值改為0MySql函式Null
- HTTP/2 特性的簡單總結HTTP