C# 如何查看HttpWebRequest发送的标头

C# 如何查看HttpWebRequest发送的标头,c#,C#,我正在使用HttpWebRequest删除一个站点,但该站点返回了一个错误。当我从浏览器中点击页面时,页面工作正常。我想比较一下,看看是什么导致了这个错误。我知道如何拦截来自浏览器的请求以检查标题,但如何查看HttpWebRequest发送的数据?是一个很好的工具。我不知道是否有通用的解决方案。但是,如果您使用的是Firefox,那么两个附加组件中的任何一个都会有所帮助:Firebug或LiveHTTPHeaders。为了比较您在代码中所做的工作和浏览器所做的工作,我相信一个HTTP调试工具(如

我正在使用HttpWebRequest删除一个站点,但该站点返回了一个错误。当我从浏览器中点击页面时,页面工作正常。我想比较一下,看看是什么导致了这个错误。我知道如何拦截来自浏览器的请求以检查标题,但如何查看HttpWebRequest发送的数据?

是一个很好的工具。

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

为了比较您在代码中所做的工作和浏览器所做的工作,我相信一个HTTP调试工具(如)将是最简单的解决方案

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

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

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

编辑:我一发布,您就已经知道如何在浏览器中进行编辑了。请尝试Headers属性:

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

您可以通过headers属性从HTTPWebRequest获取头。从MSDN:

我知道如何从浏览器查看请求。我想知道如何查看.NET如何处理HttpWebRequest。我想查看请求头,而不是响应头。当我检查request.header时,它们是空的。我猜Headers集合只用于指定标题,而不是检查它将使用什么?用C#中的答案更新。HttpWebRequest和HttpWebResponse都具有Headers属性,可以为您提供所需的内容。当我使用示例代码尝试此属性时,将response.Headers替换为request.Headers,我得到:Host:stackoverflow.com连接:Keep AliveLooks like request。在GetResponse()调用之后才会填充Headers,因为如果我移动控制台,它在我的屏幕上是空的。我知道如何从我的浏览器查看请求。我想知道如何查看.NET对HttpWebRequest做了什么。是的,但请参见上面Chris Doggett回答的评论。在提交请求之前,不会填充标头。