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

Android Studio中Retrofit调用WorldTimeAPI出现CLEARTEXT错误如何解决?

问题根源

从Android 9.0(API级别28)开始,系统默认禁用所有明文HTTP通信,你当前配置的请求BaseURL为http://worldtimeapi.org/api/timezone/,属于未加密的HTTP请求,因此触发了系统网络安全策略拦截,抛出对应的错误。

解决方案(按优先级排序)

1. 替换为HTTPS请求(最推荐)

该公开API本身支持HTTPS协议访问,直接修改MainActivity.java中的BASE_URL配置即可:

private String BASE_URL = "https://worldtimeapi.org/api/timezone/";

无需额外添加其他配置,修改后重新运行即可正常发起请求。

2. 仅允许指定域名的明文请求(适配必须用HTTP的场景)

如果业务场景必须使用HTTP协议请求该域名,可以通过自定义网络安全配置放开限制:

  • 第一步:在res/xml目录下新建network_security_config.xml文件,写入以下内容:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">worldtimeapi.org</domain>
    </domain-config>
</network-security-config>
  • 第二步:在AndroidManifest.xml的<application>标签中添加属性引用该配置:
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
    <!-- 其余Activity、Service等组件配置 -->
</application>

3. 全局放开所有明文请求限制(仅测试用,不推荐线上使用)

如果仅为本地快速测试,可以直接在AndroidManifest.xml的<application>标签中添加以下属性,放开所有HTTP请求的限制:

<application
    ...
    android:usesCleartextTraffic="true"
    ...>
    <!-- 其余Activity、Service等组件配置 -->
</application>

该配置存在安全风险,禁止在线上版本中使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:45:03