niico
niico

Reputation: 12739

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?

Upvotes: 12

Views: 7971

Answers (3)

K. B.
K. B.

Reputation: 3690

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

Upvotes: 0

Bill M.
Bill M.

Reputation: 11

Ensure you are running Fiddler as an Administrator.

Upvotes: 0

NineBerry
NineBerry

Reputation: 28499

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.

Upvotes: 16

Related Questions