Xamarin Android 调用 WebAPI 连接失败
Posted
技术标签:
【中文标题】Xamarin Android 调用 WebAPI 连接失败【英文标题】:Xamarin Android call WebAPI Connection Fail 【发布时间】:2020-04-22 10:29:16 【问题描述】:我在 Xamarin 中创建了一个应用,该应用将调用 WebAPI 来登录并从服务器检索数据。
WebAPI 是 http,而不是 https。
ios模拟器、iOS设备、android模拟器调用web API成功。 (我没有安卓设备可以测试)。
但是当使用 Android 手机部署到用户时,调用 Web API 失败并显示错误消息 Connection Fail。
不知道为什么会这样。请指导我可以检查的内容。
谢谢
【问题讨论】:
详细的错误信息是什么?有没有错误码? 错误信息应该是从异常中捕获的信息,它只显示“连接失败”。我曾尝试修改程序,看看是否可以返回更多错误信息。现在等待用户回复。 【参考方案1】:检查属性中的设置是否正确。
HttpClient 实现 -> Android
SSL/TLS 实现 -> 原生 TLS 1.2+
更新
将android:networkSecurityConfig="@xml/network_security_config"
添加到 AndroidManifest 中。
创建一个名为 network_security_config.xml 的新 xml,将其添加到 res/xml 文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
【讨论】:
WebAPI服务器没有设置SSL证书,url以http开头。 Android 9.0 之后需要 https 请求,如果你还想用 http 请求,你必须在 manifest 中声明一些东西,查看我下面的更新。【参考方案2】:确保您的安卓模拟器设置正确并连接到互联网
【讨论】:
不行,Android Emulator 可以成功调用 WebAPI,在实际的 Android 设备上运行会失败。以上是关于Xamarin Android 调用 WebAPI 连接失败的主要内容,如果未能解决你的问题,请参考以下文章
xamarin.forms或微信小程序 调用本机webapi失败
通过 FireBase 触发从 ASP.Net Api 到 Xamarin.Android 应用程序的推送通知
如何从 Xamarin Forms 项目调用 Android 和 iOS 项目中可用的方法?