You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中Cronet Engine能否配置允许HTTP请求?遇明文不允许错误

Android Cronet Engine 允许HTTP请求的配置方案

你遇到的net::ERR_CLEARTEXT_NOT_PERMITTED错误,是因为Android系统默认禁止明文HTTP请求,Cronet Engine会遵循系统的网络安全规则,但确实可以通过配置开启HTTP请求支持,以下是具体方法:

方法一:通过网络安全配置文件(推荐,更灵活)

  • 在项目的res/xml目录下创建network_security_config.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <!-- 允许指定域名的HTTP请求(更安全) -->
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">你的目标域名.com</domain>
    </domain-config>
    <!-- 如果需要允许所有域名的HTTP请求,替换上面的domain-config为:
    <base-config cleartextTrafficPermitted="true" />
    -->
</network-security-config>
  • 在AndroidManifest.xml的<application>标签中添加引用:
android:networkSecurityConfig="@xml/network_security_config"

方法二:全局开启明文请求(适用于Android 9及以下)

  • 直接在AndroidManifest.xml的<application>标签中添加属性:
android:usesCleartextTraffic="true"

注意:这种方式会全局允许所有HTTP请求,安全性较低,仅建议在测试或非敏感场景使用。

Cronet Engine 额外配置(可选)

  • 在构建CronetEngine时补充配置,确保明文请求被允许:
CronetEngine cronetEngine = new CronetEngine.Builder(context)
        // 启用必要的HTTP支持
        .enableHttpCache(CronetEngine.Builder.HTTP_CACHE_DISK, 10 * 1024 * 1024)
        .enableHttp2(true)
        // 强制开启明文请求支持(依赖系统配置生效)
        .setExperimentalOptions("{\"NetworkSecurityConfig\": {\"cleartextTrafficPermitted\": true}}")
        .build();

完成以上配置后,Cronet Engine就能正常发起HTTP请求了。

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:24:51