基于java下载中getContentLength()一直为-1的一些思路
更新时间:2017年06月14日 09:03:50 投稿:jingxian
下面小编就为大家带来一篇基于java下载中getContentLength()一直为-1的一些思路。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
如果Content Length 在头文件中没有描述

暂时还没有解决方案
如果Content Long在头文件中有描述

方案一:
伪装成浏览器
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的一些思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
javaSystem.out.println()输出byte[]、char[]异常的问题详析
这篇文章主要给大家介绍了关于javaSystem.out.println()输出byte[]、char[]异常问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看啊2019-01-01
spring-boot-maven-plugin 配置有啥用
这篇文章主要介绍了spring-boot-maven-plugin 配置是干啥的,这个是SpringBoot的Maven插件,主要用来打包的,通常打包成jar或者war文件,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下2022-08-08


最新评论