2008-12-20 102 views
1

我試圖調試一些非常挑選/複雜的Web服務的問題,其中一些理論上提出相同請求的客戶端獲得不同的結果。像查爾斯這樣的調試代理可以提供很多幫助,但由於請求很複雜(大量的頭文件,cookie,查詢字符串,表單數據等),客戶端以不同的順序創建頭文件(這應該是完全可以接受的)等等。手工完成非常繁瑣的過程。有什麼工具可以區分HTTP請求/響應嗎?

我在想寫點東西來做這個,但我希望別人已經解決了這個問題?

順便說一下,有誰知道任何查爾斯式的調試代理完全開源嗎?如果Charles是開源的,我肯定會把我在這個前面做的任何工作貢獻給這個項目。如果有類似的東西,我寧願這樣做,而不是從頭開始編寫一個單獨的程序(特別是因爲我想查爾斯或任何模擬器已經擁有了我可能需要的所有數據結構等等)。

編輯: 只是要清楚 - 文本差異將不起作用,因爲行的順序(例如至少是標題)可能不同,和/或行內值的順序(例如至少cookie)可能不同並且在兩種情況下,只要名稱和值和元數據都相同,不同的排序不應導致其他方式相同的請求被視爲不同。

回答

0

如果沒有爲作業構建任何目的,您可以使用數據包捕獲功能將消息內容保存到文本文件(將其本身插入到IP堆棧中,例如CommView)。您可以對不同的消息進行文本分析。

+0

我已經有查爾斯文本的結果,但文本差異不起作用,因爲,正如我所提到的,不同的客戶端以不同的順序發送不同的頭文件(這不應該影響響應,因此也不應該影響等價)。 – John 2008-12-20 06:43:42

+0

此外,除了逐行更改標題的順序以外,單個標題中的某些數據(例如,Cookie名稱/值對)可以按不同順序發送,但仍應視爲等效。 – John 2008-12-20 06:45:06

0

開源代理Squid可能有幫助嗎?

1

Fiddler有這樣一個選項,如果你有WinDiff在你的路徑。我不知道它是否會滿足您的需求,因爲乍一看,這是對文本進行比較的理由。但也許它在這之前使會話正常化,所以我不能說。