问题:webform项目中对接API使用Fiddler无法获取该API的请求,该webform比较老的一个项目,
同一个API写在控制台可以抓取到请求,用web项目放在本地IIS却不行,使用IIS Express也可以抓取到。
查资料找到解决方案:设置web项目默认本地代理为Fiddler的监听的代理IP。
出现原因:
1.使用IE8或以下版本
2.使用的是.net framework 4.5及以下版本
这两种情况是通过本地代理来发送请求,所有本地的请求抓取不到,使用Fiddler的默认监听端口的代理这样就能被Fiddler识别。
1.Fiddler->Tools->Options->Connections
找到Fiddler的监听端口,默认的是8888
2.在web项目的web.config配置文件的configuration节点下加上该端口的默认代理配置(推荐,放到Debug配置文件中,不影响项目)
<system.net> <defaultProxy> <proxy proxyaddress="http://127.0.0.1:8888" /> defaultProxy> system.net>
或者在代码中加Fiddler的本地代理IP(不推荐,只测试可以)
private void Test() { WebProxy proxyObject = new WebProxy("127.0.0.1", 8888); // port为端口号 整数型 var httpClientHandler = new HttpClientHandler { Proxy = proxyObject, UseProxy = true }; HttpClient client = new HttpClient(httpClientHandler); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json") ); var apiUrl = "https://www.baidu.com"; client.BaseAddress = new Uri(apiUrl); HttpResponseMessage response = client.GetAsync("").Result; var responseStr = response.Content.ReadAsStringAsync().Result; }
参考资料:
IIS代理设置:http://fiddlerbook.com/fiddler/help/hookup.asp#Q-IIS
Fiddler代理设置:http://fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic
IIS设置配置代理IP:https://www.cnblogs.com/fengmk2/archive/2008/04/01/1131389.html
IIS权限设置:https://markhneedham.com/blog/2009/06/24/using-fiddler-with-iis/