If Content Length is not described in the header file |
If Content Long is described in the header file |
Option 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); }
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: when
read() returns - 1.
conn.setRequestProperty("Accept-Encoding", "identity");
The above is the detailed content of Some ideas on why getContentLength() is always -1 in JAVA download. For more information, please follow other related articles on the PHP Chinese website!