C# 使用Fiddler捕獲本地HttpClient發出的請求操作
阿新 • • 發佈:2020-10-21
示例介面定義
為了方便筆者先自己寫了個簡單的介面用於展示,返回當前時間,具體如下
/// <summary> /// GetToday. /// </summary> /// <returns></returns> [HttpGet] [Route("GetTime/Today")] public MyDateTime GetToday() { var now = DateTime.Now; return new MyDateTime { Year = now.Year,Month = now.Month,Day = now.Day,Hour = now.Hour,Minute = now.Minute,Second = now.Second,}; }
上面的MyDateTime是展示用的自定義類,其中的屬性已在return中表示。
使用HttpClient發起請求
var httpClient = new HttpClient(); var url = "http://localhost:5000/GetTime/Today"; var response = await httpClient.GetAsync(new Uri(url));
不出意外Fiddler是抓不到的。
配置Fiddler
開啟Tools->Options
然後切換到Connections選項卡,我們可以看到Fiddler預設監聽的是8888埠,這就好辦了我們需要開啟HttpClient中的代理。
設定HttpClient
修改請求為:
var httpClient = new HttpClient(new HttpClientHandler { UseProxy = true,// 使用代理, Proxy = new WebProxy(new Uri("http://localhost:8888")) // port:8888就是Fiddler預設監聽的埠 }); var url = "http://localhost:5000/GetTime/Today"; var response = await httpClient.GetAsync(new Uri(url));
再次發起請求
Fiddler已經抓到了
補充知識:解決Fiddler無法捕獲本地HttpWebRequest(C#.net)請求和HttpURLConnection(Java)請求
方法很簡單,就是設定本地代理
C#
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Proxy = new WebProxy("127.0.0.1:8888",true);
Java
jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp
或者
System.setProperty("http.proxyHost","localhost"); System.setProperty("http.proxyPort","8888"); System.setProperty("https.proxyHost","localhost"); System.setProperty("https.proxyPort","8888");
以上這篇C# 使用Fiddler捕獲本地HttpClient發出的請求操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。