基于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的一些思路就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Tornadofx学习笔记之IconTextFx开源库整合5000+个字体图标
这篇文章主要介绍了Tornadofx学习笔记之IconTextFx开源库整合5000+个字体图标的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-12-12解决Eclipse配置Tomcat出现Cannot create a server using the selected
这篇文章主要介绍了解决Eclipse配置Tomcat出现Cannot create a server using the selected type错误的相关资料,需要的朋友可以参考下2017-02-02关于springboot配置druid数据源不生效问题(踩坑记)
今天日常跟着网课学习,学到了整合druid数据源,遇到了好几个坑,希望这篇文章可以帮助一些和我一样踩坑的人2021-09-09IDEA使用SpringAssistant插件创建SpringCloud项目
IDEA 功能强大,可以用来高效的开发应该程序。它还支持第三方插件、用户可以根据需要添加自己喜欢的插件。下面介绍如何使用 IDEA 创建 Spring Cloud 项目2021-06-06
最新评论