简体   繁体   中英

Fiddler not seeing API calls from C# HttpClient()

I have an ASP.NET MVC website that is calling a Web API web service.

The calls are working and return 200 OK - both calls to the web service on my local machine AND on a web server.

I have Fiddler running but it is not seeing these calls - only calls to the MVC website (which in turn calls the web service).

How can I see the actual web service calls?

This should be working right? Especially to the web-based web service.

I have stopped referencing http://localhost and am using MACHINENAME instead - as recommended in some SO posts. But this doesn't help.

I'm using HttpClient to call it:

using (var client = new HttpClient())
{
    var byteArray = Encoding.ASCII.GetBytes(username + ":" + password);
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

    client.BaseAddress = new Uri("http://MACHINENAME");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    var response = await client.PutAsJsonAsync("api/path", custImp);
}

How can I view the web service calls in Fiddler?

When you start Fiddler, it will change the default system proxy for the current Windows user, so that web requests made by this user are captured by Fiddler.

However, the website runs inside IIS and runs under a different user. You have to make your website use Fiddler by explicitly specifying Fiddler as the web proxy in the web.config file of your MVC application like this (use the port that your Fiddler uses):

<configuration>
...
<system.net>
  <defaultProxy>
    <proxy  proxyaddress="http://127.0.0.1:8888" />      
  </defaultProxy>
</system.net>
...
</configuration>

References:


As BornToCode mentions, it is also possible alternatively to change the application pool identity to your current user.

确保您以管理员身份运行 Fiddler。

I add .fiddler so that the requests are captured, example:

http://localhost.fiddler:59846

Reference:
https://docs.telerik.com/fiddler-everywhere/knowledge-base/capturing-localhost-traffic

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM