繁体   English   中英

HttpUrlConnection读取分块响应

[英]HttpUrlConnection reading chunked response

我正在一个项目中,我必须使用HttpUrlConnectionAndroid〜 )来读取输入流。

事实证明,当我读取输入流时,数据格式错误,并且与原始内容(由服务器发送)相比具有更大的大小。 现在,服务器响应标头包含“ Content-Length”“ Transfer-Encoding:chunked” ,据我所知这是一个问题,因为它们不应该共存。

除此之外,从HttpUrlConnection接收的输入流包含所有主体内容(带有块偏移信息)。

我有两个问题:

  • HttpUrlConnection是否应该处理分块数据?
  • 如何从输入流中获取没有分块信息的数据?

正确,HttpUrlConnection应该正在处理分块数据。 您实际上看到这些标头的事实意味着它们可能在某处格式错误,并且已经发送了\\n\\n\\r\\n\\r\\n ,因此HttpUrlConnection会将其视为实际传输。

如果您想获取原始数据,请使用套接字并连接到正确端口上的url(对于ssl可能为80、443)

编辑:connect()方法下的java.net.URLConnection状态

与资源互动; 查询标题字段和内容。

这表明URLConnection在从任何提供的阅读器中读取任何内容之前,都会查询标头信息。 请原谅我第一次不包含此内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM