[英]HttpUrlConnection reading chunked response
我正在一个项目中,我必须使用HttpUrlConnection ( Android〜 )来读取输入流。
事实证明,当我读取输入流时,数据格式错误,并且与原始内容(由服务器发送)相比具有更大的大小。 现在,服务器响应标头包含“ Content-Length”和“ Transfer-Encoding:chunked” ,据我所知这是一个问题,因为它们不应该共存。
除此之外,从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.