How to access localhost from Android emulator and iOS simulator?

Evgeny Zborovsky · March 3, 2018

Being lucky to develop a backend and a Xamarin.Forms clients on your own? Sooner or later you will have to debug the API calls and it might become painful. Unless, you will follow the next rules:

  1. Configure your API URL to run on instead of a localhost:

    // .NET Core Web.Api example public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .UseUrls(““) .Build();

  2. Configure your Xamarin.Forms API consumer to have a conditional URL base:

    string apiUrl = null; if (Device.RuntimePlatform == Device.Android) apiUrl = ““; else if (Device.RuntimePlatform == Device.iOS) apiUrl = “http://localhost:5001/api“; else throw new UnsupportedPlatformException();

The problem with Android emulator is that it maps to, not to localhost. However, the iOS Simulator uses the host machine network.

That should be it! Happy debugging!

Twitter, Facebook