.net - 无法通过使用 Xamarin.IOS 的模拟器连接到本地计算机上的 Restfull API
问题描述
我正在构建我的第一个 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
解决方案
这个问题的最佳解决方案 IMO 是在 Visual Studio IDE 中工作时完全放弃 IISExpress 并恢复使用 LocalIIS。这样我们就可以将 API 地址指定为 IP;就像在 192.168.. 的范围内一样。这确保我们仍然可以调试事物并成功避免安装模拟器时会出现的环回问题。
推荐阅读
- ffmpeg - 如果“EXT-X-MEDIA-SEQUENCE”> 0,则“不包含任何流”
- pytest - 与 pytest 主响应交互
- java - 给定二叉树创建父数组
- javascript - 递归循环遍历对象的嵌套数组以编写嵌套列表
- ios - 我们可以为第一年及以后设置不同的价格吗?就像,第一年 2.99 然后 0.99订阅
- html - 嵌套的 flexbox 没有正确显示
- php - 动态抓取最新帖子 OctoberCMS 博客插件
- android - Error when trusting HTTPS certificate using okhttp in Kotlin
- git - 有没有办法在不增加任何版本的情况下使用 lerna 推送 git 标签?
- java - 如何在 JMeter 中使用 Java 代码生成一些 HKSTD id ?此 id 将在进一步的 http 请求采样器中使用