2010-10-05 28 views
0

我試圖尋找爲什麼來自C#腳本的POST請求不起作用,當相同的請求在Python中正常工作時。我希望能夠將腳本發送的所有數據和服務器的響應顯示在屏幕上,以便我可以計算出C#和Python腳本發送的區別。顯示在C#中使用HttpWebRequest發送的所有HTTP數據

在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' 

是否有產生方式C#中使用HttpWebRequest類的類似輸出?

我已經在另一個問題中看到提琴手,但我正在運行Linux和Fiddler似乎只適用於Windows。

回答

2

您可以通過resp.Headers.AllKeys旋轉,然後傾倒鍵和它的價值,雖然有時有打算在平移度(最明顯的是,當它做自動redirect-以下)。

您可以使用System.Net跟蹤。

你可以使用ethereal它有一個Linux版本。最近我不會將它用於這種事情,因爲Fiddler對於這種情況確實更方便,但我過去常常使用空靈,有時看到網絡上實際上是什麼,而不是代碼所說的是最好的方式去(因爲你不取決於可能錯誤的代碼告訴你,如果代碼是越野車)。

0

是的,你可以和我以前成功地使用它。如果你使用的是C#,我想象你有一個配置文件,你可以打開System.Net跟蹤。我不確定莫諾是否有這個 - 如果你正在使用莫諾。

看一看這裏: http://msdn.microsoft.com/en-us/library/ty48b824.aspx

+0

我試過轉動跟蹤,你可以通過在源文件中使用#define TRACE並使用--trace運行可執行文件來做到這一點。唯一的問題是,這顯示我每一個函數調用,而我真的只想看到HTTP請求/響應(純文本,就像我手動構建它們)。 – pwaring 2010-10-05 10:42:52

+0

你需要那裏的「詳細」。不知道如何做在莫諾。 – Aliostad 2010-10-05 11:01:35