我习惯经常访问网站(新闻网站)。经过两年的成功操作后,HttpWebRequest失败,超时操作。首先,我怀疑目标网站是阻止我的IP,但我可以在该机器上看到带有浏览器的网站,当我用Fiddler跟踪请求时,它显示它可以在143毫秒内下载页面。所以目的地没问题。然后我试图设置浏览器发送到Web服务器的所有请求标头,但它仍然有问题和超时。 (浏览器显示响应足够快(143毫秒),并且没有理由发生超时错误。
注意:应用程序在具有不同IP地址的其他计算机上运行良好
有人能告诉我这招吗?
答案 0 :(得分:2)
在搜索了一段时间并与Fiddler一起玩之后,我发现我应该使用Keep-Alive发送请求,在Http 1.1中,第一个请求是使用Keep-Alive标头启用的,但后续请求会删除此标头,因为它使用了其他请求的连接相同。所以在我的情况下,目标网站需要有所有请求的Keep-Alive标头,否则它会超时我用以下问题解决了这个问题
C# - Connection: keep-alive Header is Not Being Sent During HttpWebRequest