2010-10-09 51 views
35

我試圖調試來自another question here on SO的HTTP請求有什麼問題。所以我讀了一些關於Fiddler的信息,並想用它來調試我的問題。但我似乎無法從我的WPF應用程序通過Fiddler獲取流量。我相信我需要配置一個代理。我正在使用WebClient作爲基本示例,但我認爲以後需要WebRequest。但現在,用一個簡單的WebClient,我怎麼能通過Fiddler(我相信我必須設置代理到本地主機:8888)?如何使用Fiddler調試來自任何應用程序(例如C#/ WPF應用程序)的流量

UPDATE:

,如果我做了正確的事情或沒有,但我試過

var wc = new WebClient(); 
WebProxy proxy = new WebProxy(); 
proxy.Address = new Uri("http://localhost:8888"); 
wc.Proxy = proxy; 

,但沒有我不知道 - 我沒有看到提琴手

任何流量

我試過...

var wc = new WebClient(); 
WebProxy proxy = new WebProxy("127.0.0.1", 8888); 
wc.Proxy = proxy; 

還是沒有

+1

只是爲了澄清,你要發送HTTP請求到什麼網址? – EricLaw 2010-10-10 02:52:33

+0

我正在嘗試上傳到本地主機,那是我的問題,然後我從[fiddler文檔](http://www.fiddler2.com/fiddler/help/hookup.asp#Q-DOTNET)發現我不會能夠查看來自本地主機的流量 – 2010-10-10 10:08:32

回答

50

我找到了解決辦法,在this fiddler2.com page

爲什麼我看不到流量發送到 http://localhosthttp://127.0.0.1?

Internet Explorer和.NET Framework中的硬編碼不發送 請求本地通過任何 代理,並作爲代理,提琴手將 不接收此類流量。

最簡單的解決方法是使用您的計算機名稱作爲主機名稱 而不是Localhost或127.0.0.1。因此,例如, ,而不是打 http://localhost:8081/mytestpage.aspx, 而不是訪問 http://machinename:8081/mytestpage.aspx

+13

IIS Express不會接收到http:// machinename /的流量,而是轉到http://localhost.fiddler/ http://fiddler2.com/documentation/Configure-Fiddler/Troubleshooting/ 400ErrorFromIIS – robrich 2013-05-09 06:02:11

+1

它適用於我。在我的控制檯應用程序中,我調用了在我的開發計算機上部署在IIS7.5上的webservice。並且,我用計算機名稱替換了「localhost」,然後Fiddler可以捕獲流量。 – york 2014-01-10 03:16:24

15

也許有點晚,但是......

我解決這個問題簡單地通過附加一個「點」爲localhost,所以不是訪問localhost,我嘗試訪問localhost.(注意在點主機名結束)

信貸,信貸是由於: 我得到了這個不尋常的提示從這個線程http://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler-in-NET-HTTP-Clients-and-WCF-Proxies#596591

工作正常!

+2

我認爲這不再起作用。但是你可以使用http://localhost.fiddler/來使它工作。 – 2017-05-10 07:06:43

3

我一直使用下面的配置來重定向網絡HTTP調用,以通過我的應用程序中的fiddler代理。

這適用於所有類型的.NET應用程序(它有兩種web.configapp.config文件),並在其小提琴手最好禁用Capture Traffic選項來避免運行的所有應用程序捕獲一般的交通。此快捷鍵是F12

<system.net> 
    <defaultProxy> 
     <proxy proxyaddress="http://localhost:8888/" /> 
    </defaultProxy> 
</system.net> 

這是有價值的配置,如果你有,你沒有改變調用URL代碼的機會第三方組件。

我希望這可以幫助別人。

+0

由於某種原因,這不會在我的WPF應用程序中工作。我必須手動強制它使用代理。 – rolls 2017-08-21 04:56:15

1

「IIS Express將無法獲得流量到MACHINENAME這樣反而路線localhost.fiddler fiddler2.com/documentation/Configure-Fiddler/Troubleshooting/... - robrich 5月9日在'13 6:02」

RobRich上面說得對。 這是唯一能夠工作的東西,因爲我只能使用IIS Express。

11

您可以找到回答後下 https://stackoverflow.com/a/7506427/471499

它列出了你需要在你的web.config添加此OR App.Config中

<system.net> 
    <defaultProxy> 
    <proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://127.0.0.1:8888" /> 
    </defaultProxy> 
</system.net> 
  1. 然後開始提琴手在同一臺機器上作爲應用程序運行。
  2. 點擊工具|提琴手選項=>連接=>調整端口爲8888.(允許遠程,如果你需要的話)
  3. 好的,然後從文件菜單,捕獲流量。

就是這樣,但不要忘記在關閉提琴手後刪除web.config文件,因爲如果你不這樣做,它會報錯。

參考:http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy