就像书名说的。
有时候,来自远程服务器的HTTP响应包含具有零值的内容长度标头,但仍然返回HTTP 。仍然可以在浏览器中使用jQuery获取主体,但是使用HttpWebResponse.GetResponseStream()无法读取任何内容。我怎么才能勉强读出来呢?谢谢大家。
下面是我遇到的HTTP响应的一个例子。
HTTP/1.1 200正常
连接:保持连接
缓存-控制:无缓存,无存储
内容-类型:文本/纯文本
内容长度:0
日期:2013年9月30日星期一09:34:21格林尼治时间
(HTTP车身)
发布于 2013-09-30 11:49:28
通过查看源代码,我无法找到强制执行此行为的方法。也许你什么也做不了。
尝试禁用HTTP管道。在这种情况下,HttpWebRequest可能不依赖于内容长度。这不太可能有帮助。
要么使用不同的HTTP库,要么使用TcpClient发送请求。您可以使用Fiddler复制一个模板HTTP请求,并使用它作为您的基础。不应该是很多工作。
您还可以创建删除头的重写代理。这可能是个很费劲的解决方案。
发布于 2013-09-30 18:43:24
第一个问题--您从哪里得到HTTP响应的?您是用Fiddler捕获它,还是通过在调试器中检查HttpWebResponse来输入您认为正在看到的内容?我建议使用Fiddler运行这个程序,并检查完整的响应头(如果您还没有这样做)。
我们需要首先确定内容长度是否返回值为零,或者项目中的其他代码是否导致您将其解释为零,或者将内容长度的副本设置为零。
我认为这里发生了两件事:
哈罗德
https://stackoverflow.com/questions/19091952
复制相似问题