Forum Xamarin.Forms


The Xamarin Forums have officially moved to the new Microsoft Q&A experience. Microsoft Q&A is the home for technical questions and answers at across all products at Microsoft now including Xamarin!

To create new threads and ask questions head over to Microsoft Q&A for .NET and get involved today.

Debugging HttpClient Calls with fiddler in PCL

stephenshaw.3366stephenshaw.3366 USMember ✭✭
edited December 2015 in Xamarin.Forms


I noticed there were very few guides on how to capture requests from your phone through fiddler while debugging so though i'd note down how to go about it in a pcl project

This is aimed at android devices but should be a similar enough setup for ios

First you will need to set fiddler up to capture packets from remote devices

Tools->Fiddler Options->Connections

  • Make sure "Allow remote computers to connect" is ticked
  • Make a note of the port number fiddler listens on for later

Tools->Fiddler Options->HTTPS

  • Make sure "Capture HTTPS CONNECTs" and "Decrypt HTTPS traffic" are checked

Click "Ok"

Open a cmd prompt and run "ipconfig" to get your ip address, make a note of this for later

Next your on phone long press the wifi connection you want to use and modify the network config

  • Tick "Show advanced options"
  • Under "Proxy" select Manual
  • Under "Proxy hostname" enter the ip address of your computer from the ipconfig
  • Under "Proxy port" enter the port fiddler is running under from the fiddler options connection tab

Connect to this network

HTTPS Connections

If you are going to be calling HTTPS you are going to need to install the Fiddler certificate

  • Open a browser on your phone and go to the ipaddress and port number you entered in the network config of you connected network
  • Click the link for "Fiddler Root Certificate" and install the link

You will now be able to see traffic coming in from your phone on fiddler but if your app is calling an api using the httpclient class then there is another bit of work you will need to do.


You will need to change your code to use a HttpClientHandler and a proxy

The following is an example of what that looks like

HttpClientHandler handler = new HttpClientHandler () {
    Proxy = new WebProxy (new Uri("http://[Computer IP]:[Fiddler port number]")),
    UseProxy = true
 using (var client = new HttpClient(handler))
    // Make your call in here

Looks simple enough only PCLs dont include the Web proxy class in its bundled System.Net dll for whatever reason so you will need to write your own by extending the System.Net.IWebProxy interface
like so

public class WebProxy : System.Net.IWebProxy
    public System.Net.ICredentials Credentials

    private readonly Uri _proxyUri;

    public WebProxy(Uri proxyUri)
        _proxyUri = proxyUri;

    public Uri GetProxy(Uri destination)
        return _proxyUri;

    public bool IsBypassed(Uri host)
        return false;

After all this faffing about you will then be able to see the calls coming through fiddler


  • BobFuryBobFury USMember

    Just wanted to say thank you for this. I had been hunting high and low trying to figure out how to see the traffic via Fiddler. This worked like a charm!

  • Phil.JSPhil.JS GBUniversity

    Great post, a gotcha for me was restarting fiddler after changing settings

  • gvsharmagorintagvsharmagorinta USMember ✭✭

    How to create a WebProxy class in PCL? In my case it's clearly raising compile time error. can you brief this?

  • MarkDownesMarkDownes USUniversity ✭✭

    After banging my head against the wall for many hours I stumbled upon this suggestion. You saved me - thanks!

  • ChristianSvrdChristianSvrd SEMember ✭✭✭

    why doesn't HttpClient respect the Android's Proxy setting?

  • electroidelectroid Member ✭✭

    Amazing solution. Now I can debug from android device.

  • anna.domashychanna.domashych USMember ✭✭
    edited November 2018

    This post is a great help for anyone using Fiddler!
    However, if you want to provide your QA team with the ability to use Fiddler on their machines, hardcoding computer IP is not the solution.
    HttpClient indeed does not respect proxy settings neither on Android nor on iOS. I have a post describing my fix for this bug
    Hope it helps anyone.

  • NickRandolphNickRandolph AUUniversity ✭✭

    @anna.domashych I just came across your post on medium - super useful. I found similar issue with my post on Fiddler Debugging

  • AntDCAntDC Member ✭✭

    You sir - are a gentleman and a scholar!
    Thank you very much.

Sign In or Register to comment.