解决 Android 28 不能请求 HTTP 接口的问题

  • Android,API28,HTTP,HTTPS

从Android 9(API级别28)开始,默认情况下禁用明文支持。出发点是好的,能用 https 的尽量全应用,全站 https 化,如果我们需要一个过渡期怎么办,两个方案

  1. 配置 manifest 文件

    <application ... android:usesCleartextTraffic="true" // 添加这一行 ...

      ...
    

在 manifest 文件中增加 android:usesCleartextTraffic="true" 属性。优点和缺点就是作用于整个应用。

  1. network_security_config 网络安全配置

在 manifest 中增加

  <application
  ...
  android:networkSecurityConfig="@xml/network_security_config"
  ...
  >

  </application>

然后在 network_security_config 文件中增加配置:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">需要支持 HTTP 的域名</domain>
    </domain-config>
</network-security-config>

该方案可以精确的配置某些域名,特别是第三方库里的域名。

阅读原文 : 解决 Android 28 不能请求 HTTP 接口的问题 https://github.com/collinxz-coder/blog/issues/5

- EOF -

本文链接 https://spacepage.top/archives/2019.09.30-Android-29-不能使用HTTP请求.html,欢迎转载,转载请注明出处。

友情链接
网站统计
  • 网站已运行:42天
  • 文章总数:60 篇