繁体   English   中英

显示使用HttpWebRequest以C#发送的所有HTTP数据

[英]Showing all HTTP data sent in C# using HttpWebRequest

我试图找出为什么C#脚本中的POST请求无法正常工作的原因,而相同的请求在Python中也能正常工作。 我希望能够将脚本发送的所有数据以及服务器的响应显示在屏幕上,以便我可以计算出C#和Python脚本发送的内容之间的区别。

在Python中,我可以使用标准的httplib2库执行此操作,只需使用:

httplib2.debuglevel = 1

这将产生以下输出(作为示例):

reply: 'HTTP/1.1 201 Created\r\n'
header: Date: Tue, 05 Oct 2010 09:25:42 GMT
header: Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with Suhosin-Patch
header: X-Powered-By: PHP/5.2.6-1+lenny9
header: Location: http://example.org/api/2
header: Content-Length: 0
header: Content-Type: text/html
send: 'GET /api/2 HTTP/1.1\r\nHost: example.org\r\naccept-encoding: gzip, deflate\r\nuser-agent: Python-httplib2/$Rev$\r\n\r\n'

有没有办法使用HttpWebRequest类在C#中产生类似的输出?

我在另一个问题中提到Fiddler,但我正在运行Linux,而Fiddler似乎仅适用于Windows。

您可以旋转resp.Headers.AllKeys ,然后转储密钥及其值,尽管有时会进行某种程度的转换(最明显的是,它在执行自动重定向跟随时)。

您可以使用System.Net跟踪。

您可以使用具有Linux版本的ethereal 由于Fiddler在这类情况下确实比较方便,所以我现在不使用它了,但是我过去曾经使用过空灵,有时看到的是实际的东西,而不是代码所说的是最好的方法。继续(因为您不依赖可能有错误的代码来告诉您代码是否有错误)。

是的,您可以,我之前已经成功使用过它。 如果您使用的是C#,我想您有一个配置文件可以打开System.Net跟踪。 我不确定Mono是否具有此功能-如果您正在使用Mono。

在这里看看: http : //msdn.microsoft.com/en-us/library/ty48b824.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM