如何使用fiddler或任何其他工具跟踪HttpClient请求?

dhr*_*vin 39 c# httpclient fiddler c#-4.0

我正在使用HttpClient向我无法访问的web api服务之一发送请求,我需要跟踪从我的客户端到服务器的实际请求流.有没有办法可以连接小提琴手听取请求?

我使用System.Net.Http.HttpClient类发送请求.

更新:现在试图改善这个问题,因为我无法得到我想要的东西.我正在使用.Net客户端应用程序连接到我自己的IIS上通过HTTP通道托管的Web服务.我之前使用在我的IIS上托管的网站进行了小提琴调试,并观察了我的浏览器和WebSite之间产生的流量.但是,当看到.Net客户端程序使用HttpClient类与Web服务进行通信时产生的流量时,奇怪的是,小提琴手似乎无法利用该流量并且不会显示任何内容..Net HttpClient是否绕过WinInet API连接到服务,导致小提琴手无法观看流量?

Sam*_*ack 42

如果您使用http:// localhost:1234等URL连接,请将其更改为http://localhost.fiddler:1234 /,然后来自HttpClient的请求应在Fiddler中可见.


Eri*_*Law 24

一般来说,只需在申请之前启动Fiddler即可.你还没有解释你到目前为止所尝试的内容.

  • 我希望这有助于了解我到目前为止所尝试的内容.我已经尝试过使用fiddler,但它没有捕获我的.net控制台应用程序生成的任何流量,该应用程序使用HTTPClient类来访问自定义端口上服务器上托管的服务. - dhruvin刚才 (2认同)
  • 您仍然没有提供URL,但使用我的通灵调试功能,我可以告诉您需要阅读此内容:http://fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic来解决您的问题. (2认同)

Ton*_*ony 13

IIS不使用Internet选项中的代理设置,因为它在不同的用户标识下运行(默认为ApplicationPoolIdentity).@EricLaw提供了一个关于捕获IIS/ASP.NET流量问题的好指针.

我编辑web.config强制HTTPClient使用代理,而不是配置IIS使用我的登录帐户,如下所示.

<configuration>
  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
      <proxy proxyaddress="http://127.0.0.1:8888"/>
    </defaultProxy>
  </system.net>
</configuration>
Run Code Online (Sandbox Code Playgroud)

以下是MSDN的使用细节.