網上很多解決案例是如下方代碼設置代理,但在我的Fiddler4環境下無效,后尋得官方處理方法證實與代理無關。
HttpWebRequest request= WebRequest.Create("http://localhost:20017/api/Test") as HttpWebRequest;
request.Proxy = new WebProxy("127.0.0.1:8888",false); //網上介紹的方法,設置代理
官方處理方法原址:http://docs.telerik.com/fiddler/configure-fiddler/tasks/MonitorLocalTraffic 。以下是我當時的操作步驟。
首先,在代碼中使用計算機名替換url中的 Localhost 或 127.0.0.1。
HttpWebRequest request= WebRequest.Create("http://localhost:20017/api/Test") as HttpWebRequest; //原代碼
HttpWebRequest request= WebRequest.Create("http://xurongjian:20017/api/Test") as HttpWebRequest; //修改后的代碼
其次,在Fiddler中添加一段代碼。通過菜單Rules--Customize Rules...打開Fiddler ScriptEditor窗口,在打開的窗口中尋找OnBeforeRequest方法,按照我圖中的位置加入一段代碼,到此收工。


if (oSession.HostnameIs("xurongjian")) { oSession.host = "localhost:20017"; } //上圖中添加的代碼
到這里結束。即便在代碼里沒設置Proxy,Fiddler4都能抓取到HttpWebRequest的請求了。
實際上並不一定要用計算機名替換url中的 Localhost 或 127.0.0.1,我用其他隨意字符也能成功抓取到請求。
