服务器之家

服务器之家 > 正文

基于java下载中getContentLength()一直为-1的一些思路

时间:2020-11-16 15:32     来源/作者:Java教程网

如果Content Length 在头文件中没有描述

基于java下载中getContentLength()一直为-1的一些思路

暂时还没有解决方案

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

基于java下载中getContentLength()一直为-1的一些思路

方案一:

伪装成浏览器

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

代码中加入代理

java" id="highlighter_222601">
?
1
2
3
4
5
6
7
8
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 有对此的描述:

?
1
2
3
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的一些思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国
暖暖日本高清免费中文 暖暖在线观看免费完整版韩国 2021-05-08
返回顶部