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失败

进行 api 调用时 Xamarin 应用程序死锁

通过 FireBase 触发从 ASP.Net Api 到 Xamarin.Android 应用程序的推送通知

如何从 Xamarin Forms 项目调用 Android 和 iOS 项目中可用的方法?

OnTokenRefresh 从未在 Xamarin Android 中调用

Httpclient Xamarin Forms 调用在 Android 中不起作用