Fiddler无法抓取web项目中的http请求解决方案

问题:webform项目中对接API使用Fiddler无法获取该API的请求,该webform比较老的一个项目,

同一个API写在控制台可以抓取到请求,用web项目放在本地IIS却不行,使用IIS Express也可以抓取到。

查资料找到解决方案:设置web项目默认本地代理为Fiddler的监听的代理IP。

出现原因:

1.使用IE8或以下版本

2.使用的是.net framework 4.5及以下版本

这两种情况是通过本地代理来发送请求,所有本地的请求抓取不到,使用Fiddler的默认监听端口的代理这样就能被Fiddler识别。

Fiddler无法抓取web项目中的http请求解决方案_第1张图片

 

1.Fiddler->Tools->Options->Connections

找到Fiddler的监听端口,默认的是8888

Fiddler无法抓取web项目中的http请求解决方案_第2张图片

 

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/

转载于:https://www.cnblogs.com/townsend/p/9099865.html

你可能感兴趣的:(Fiddler无法抓取web项目中的http请求解决方案)