如何查看HttpWebRequest发送的标头

时间:2009-06-01 14:56:34

标签: c#

我正在使用HttpWebRequest抓取网站,但网站返回错误。当我从浏览器点击它时页面工作正常。我想比较它们,看看可能导致错误的原因。我知道如何拦截来自浏览器的请求以检查标头,但是如何查看HttpWebRequest发送的数据?

5 个答案:

答案 0 :(得分:8)

为了比较您在代码中执行的操作以及浏览器的操作,我确信HTTP调试工具(例如Fiddler)将是最简单的解决方案。

Fiddler充当客户端和服务器之间的代理,并显示通过HTTP协议发送的所有信息。

您可能需要配置.NET应用程序以使用Fiddler提供的代理。 This blog post提供有关该主题的详细信息。

答案 1 :(得分:6)

http://www.fiddler2.com/fiddler2/是一个很好的工具。

答案 2 :(得分:2)

Firebug的网络面板将显示所有请求,包括标题。

编辑:看到您发布后,您已经知道如何在浏览器中执行此操作。尝试Headers属性:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.stackoverflow.com");
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Console.WriteLine(response.Headers);

答案 3 :(得分:0)

您可以通过Headers属性从HTTPWebRequest获取标头。来自MSDN:http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.headers.aspx

答案 4 :(得分:-1)

我不知道是否有一般解决方案。但是如果你使用的是Firefox,那么两个附加组件中的任何一个都会有所帮助:Firebug或LiveHTTPHeaders。