无法使用Xamarin.IOS通过仿真器连接到本地计算机上的Restfull API。

时间:2019-11-19 13:06:02

标签: .net xamarin xamarin.ios

我正在构建我的第一个Xamarin应用程序,并试图使用它连接到同一台计算机上的Restful API。选择Xamarin的原因是,我们可以构建一个可以在多个设备上运行的应用程序。

例如,我们有一个在IISExpress上运行的外部WebAPI项目,我们已将URL设置为http://127.0.0.1:5001

在我们的Xamarin项目中,我们可以通过Visual Studio中的相应模拟器,使用UWP和Android应用程序成功连接到API项目。这是我用来区分正在运行的设备模拟器的示例。

    public static string BaseAddress = Device.RuntimePlatform == Device.Android ? "http://10.0.2.2:5001"
        : Device.RuntimePlatform == Device.iOS ? "http://localhost:5001"
        : "http://127.0.0.1:5001";
    public static string TodoItemsUrl = BaseAddress + "/api/Appointment/GetAppointments";

这是在我们运行iOS模拟器时尝试调用API控制器的时候。似乎没有任何请求。我尝试了很多不同的东西,但似乎无法解决。还发现那里的文档非常模糊。有谁知道为什么会这样?

我定期收到

       System.Net.WebExceptionStatus.ConnectFailure

1 个答案:

答案 0 :(得分:0)

此问题IMO的最佳解决方案是在Visual Studio IDE中工作时完全放弃IISExpress,而恢复使用LocalIIS。这样,我们可以将API地址指定为IP;例如在192.168。范围内。这样可以确保我们仍然可以调试东西并成功避免由于安装仿真器而引起的环回问题。