Java UrlConnection HTTP 1.0

标签 java http urlconnection

我正在尝试从我的 Java 应用程序下载文件。但是因为 UrlConnection 使用 HTTP 1.1 协议(protocol),我得到一个 Tranfer Encoding: chunked 响应,在这种情况下我无法找出文件大小(未设置内容长度)。据我所知,HTTP 版本在类中是硬编码的,无法更改它。是否可以通过某种方式将版本更改回一个版本或告诉服务器在发送文件时不要使用分块编码?

编辑:我不是要检索动态内容我的应用程序是一个下载管理器。 我正在下载的文件是静态的。我检查过的其他下载器 wget、igetter、curl 使用 Http 1.0,它们从大多数服务器获取大小信息。但是我的应用程序和发布 Http 1.1 的 firefox 总是得到分块编码。我知道内容长度并不总是存在,但我希望大部分时间都能得到它。

最佳答案

Jakarta Commons HTTP 客户端包含一个“首选项架构”,允许对 HTTP 连接的细节进行一些细粒度的控制。参见 http://hc.apache.org/httpclient-3.x/preference-api.html

关于Java UrlConnection HTTP 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/719107/

相关文章:

与equals方法相关的Java代码

http - 我需要使用 http 重定向代码 302 还是 307?

java - 在服务器端检测浏览器 "Save image as..."请求

java - Http 连接读取超时

java - 在 Android 中使用 JCIFS

Java:Android UI (Android Studio) 和 java 后端(模型)的交互/连接(与 JavaFX 相比)

java - 获取Android onClickListener的返回值

java - RGB 到 HSV 转换

security - 身份验证中的随机数使用

java - 无法从 URLConnection 获取 JSON 响应