Android 11设置cleartextTrafficPermitted=true后仍出现HTTP连接错误
问题根因
你遇到的连接失败报错和明文流量配置无关,核心原因是:安卓设备(含模拟器)上的127.0.0.1指向设备自身的回环地址,而非你运行Django服务的电脑的本地地址,所以请求根本找不到目标服务。
解决方案(无需降级Sandbox版本)
场景1:使用安卓模拟器调试
- 修改
DjangoApi.DJANGO_SITE的配置,将原127.0.0.1:8000替换为安卓模拟器专用的宿主机映射地址10.0.2.2:8000 - 修改
network_security_config.xml中的domain配置,将127.0.0.1替换为10.0.2.2:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">10.0.2.2</domain> </domain-config> </network-security-config>
场景2:使用真机调试
- 确保运行Django服务的电脑和安卓手机连接同一个局域网
- 查询电脑的局域网IP地址:Windows系统执行
ipconfig查看,Mac/Linux系统执行ifconfig或ip addr查看,通常为192.168.x.x格式 - 修改
DjangoApi.DJANGO_SITE的配置,将127.0.0.1:8000替换为[你电脑的局域网IP]:8000 - 修改
network_security_config.xml中的domain配置,将127.0.0.1替换为你电脑的局域网IP
通用校验步骤
- 启动Django服务时绑定所有网卡地址,执行命令:
python manage.py runserver 0.0.0.0:8000,避免服务仅允许本地访问 - 关闭电脑防火墙或放行8000端口的入站请求,避免请求被拦截
内容的提问来源于stack exchange,提问作者Min Lee
相关产品推荐
相关产品推荐

