溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用java下載實現getContentLength()一直為-1的方法

發布時間:2020-11-23 17:28:44 來源:億速云 閱讀:502 作者:Leah 欄目:編程語言

本篇文章為大家展示了利用java下載實現getContentLength()一直為-1的方法,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

如果Content Length 在頭文件中沒有描述

利用java下載實現getContentLength()一直為-1的方法

暫時還沒有解決方案

如果Content Long在頭文件中有描述

利用java下載實現getContentLength()一直為-1的方法

方案一:

偽裝成瀏覽器

conn.setRequestProperty("User-Agent", " Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"); 

代碼中加入代理

String host = "127.0.0.1";  
   String port = "8888";  
   setProxy(host, port); 
   public static void setProxy(String host, String port) {  
  System.setProperty("proxySet", "true");  
  System.setProperty("proxyHost", host);  
  System.setProperty("proxyPort", port);  
} 

方案二:

加入以下屬性,讓服務器不要gzip方式壓縮:

Java Doc 有對此的描述:

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. 

conn.setRequestProperty("Accept-Encoding", "identity");

上述內容就是利用java下載實現getContentLength()一直為-1的方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女