解决Android 9这样的高本版,不能发送http请求的问题

  • Android9为了数据传输更加安全高效,故将要求默认使用加密连接,这意味这Android P将禁止app使用所有未加密的连接,因此Android P系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,这也意味着http要被https代替。

解决办法:

  • 方法一

    • 将TargetSdkVersion设置未27,低于28就可用。(没有试过具体如何操作)
  • 方法二

    • 找到AndroidManifest.xml问文件

      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
          <domain includeSubdomains="true">localhost</domain>
        </domain-config>
      </network-security-config>
      (原文件)
      
    • 修改原文件(第一次构建就行了,不用再构建,直接运行即可)

      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <base-config cleartextTrafficPermitted="true" />
      </network-security-config>
      
  • 方法三

    • 将后端修改未https请求,这虽然在测试阶段可以使用openssl生成签名文件,但是正式发布的时候,还需要买,不划算。
原文地址:https://www.cnblogs.com/MyUniverse/p/12938242.html