Heim  >  Artikel  >  Java  >  Einige Ideen, warum getContentLength() beim JAVA-Download immer -1 ist

Einige Ideen, warum getContentLength() beim JAVA-Download immer -1 ist

巴扎黑
巴扎黑Original
2017-06-26 10:21:241870Durchsuche
如果Content Length 在头文件中没有描述

Es gibt noch keine Lösung

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


Option 1:

Als Browser tarnen

 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");

Proxy zum Code hinzufügen

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);    
}

Option 2:

Fügen Sie die folgenden Attribute hinzu, um die GZIP-Komprimierung des Servers zu verhindern:

Java Doc enthält eine Beschreibung dazu:

Standardmäßig verlangt diese Implementierung von HttpURLConnection, dass Server die gzip-Komprimierung verwenden. Da getContentLength() die Anzahl der übertragenen Bytes zurückgibt, können Sie diese Methode nicht verwenden, um vorherzusagen, wie viele Bytes von getInputStream() gelesen werden können streamen, bis es erschöpft ist: wennread() -1 zurückgibt

Das obige ist der detaillierte Inhalt vonEinige Ideen, warum getContentLength() beim JAVA-Download immer -1 ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn