【问题标题】:Xamarin: Java.IO.IOException Message=Cleartext HTTP traffic to myapi.azurewebsites.net not permittedXamarin:Java.IO.IOException 消息=不允许到 myapi.azurewebsites.net 的明文 HTTP 流量
【发布时间】:2020-03-07 01:05:56
【问题描述】:

我最近升级到了最新版本的 Xamarin 4.5.0.356。这迫使我将我的 Android 构建版本更改为 9.0。

从那时起,每当我调用我的测试 Api 时,我都会得到:

Java.IO.IOException   Message=Cleartext HTTP traffic to myapi.azurewebsites.net not permitted

我意识到 API 应该都是 httpS,但这是一个测试(归我所有)。

我搜索了网络(堆栈溢出),建议我将以下内容添加到 AndroidManifest.xml

  <uses-permission android:name="android.permission.INTERNET" />
  <application android:networkSecurityConfig="@xml/network_security_config" />
</manifest>

然后添加包含以下内容的 Resources/xml/network_security_config.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">myapi.azurewebsites.net</domain>
  </domain-config>
</network-security-config>

但是,我在第一次调用 API 时仍然收到错误消息。 (iOS版可以正常使用)

有人有什么想法吗?

【问题讨论】:

    标签: xamarin.android


    【解决方案1】:

    尝试在 network_security_config.xml 中添加基本配置:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
      <base-config cleartextTrafficPermitted="true" />
      <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">myapi.azurewebsites.net</domain>
      </domain-config>
    </network-security-config>
    

    【讨论】:

    • 我没有机会同时尝试基本和域配置选项。相反,我们将站点更改为 httpS,现在一切正常。
    • Https 永远是最好的选择,很高兴听到你解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2019-07-16
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 2020-04-28
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多