![](/img/trans.png)
[英]HttpWebResponse.GetResponseStream(): when is the response body transmitted?
[英]Force To Read HttpWebResponse.GetResponseStream() When Content-Length Is Zero
正如标题所说。
有时,来自远程服务器的HTTP响应包含具有零值的Content-Length标头,但仍返回HTTP body 。 仍然可以在浏览器中使用jQuery获得该正文,但是使用HttpWebResponse.GetResponseStream()无法读取任何内容。 我该如何强迫阅读? 感谢大家。
这是我遇到的HTTP响应示例。
HTTP / 1.1 200 OK
连接:保持活动状态
缓存控制:无缓存,无存储
内容类型:文本/纯文本
内容长度:0
日期:2013年9月30日星期一09:34:21 GMT
(HTTP正文)
查看源代码,我找不到强制这种行为的方法。 可能您无能为力。
尝试禁用HTTP流水线。 在这种情况下,也许HttpWebRequest不依赖于内容长度。 它不太可能会有所帮助。
使用其他HTTP库,或使用TcpClient
发送请求。 您可以使用Fiddler复制模板HTTP请求,并将其用作您的基础。 不应该做很多工作。
您还可以创建一个重写代理来删除标头。 那可能是一个努力的解决方案。
第一个问题-您从哪里获得HTTP响应? 您是使用Fiddler捕获的,还是通过在调试器中检查HttpWebResponse来输入您认为的内容? 我建议使用Fiddler来运行它,并检查完整的响应头(如果尚未安装的话)。
我们首先需要确定返回的Content-Length值为零,还是项目中的某些其他代码使您将其解释为零,或者将内容长度的副本设置为零。
我认为这里发生了两件事之一:
哈罗德
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.