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

Android应用连接Django服务器发送数据时出现NoConnectionError错误求助

解决Android应用连接Django服务器的EPERM权限错误

错误核心是java.net.SocketException: socket failed: EPERM (Operation not permitted),这是Android应用缺少必要权限或网络配置不正确导致的,以下是针对性解决方案:

1. 添加网络访问权限

在AndroidManifest.xml的根标签内添加INTERNET权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 可选,用于检测网络状态 -->

2. 允许明文HTTP请求(Android 9+)

Android 9及以上默认禁止明文HTTP通信,如果你的Django服务器使用HTTP而非HTTPS,需要配置网络安全策略:

  • 在res/xml目录下创建network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
  • 在AndroidManifest.xml的application标签中引用该配置:
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config">
    ...
</application>

3. 确保Django服务器可被Android设备访问

  • 启动Django时绑定到0.0.0.0,允许局域网内设备访问:
python manage.py runserver 0.0.0.0:8000
  • 检查电脑防火墙是否开放了8000端口,避免拦截请求
  • 在Android设备的浏览器中访问http://[电脑局域网IP]:8000,确认能正常加载Django页面(比如默认的欢迎页)

4. 修正Android应用的请求地址

不要使用localhost或127.0.0.1作为请求地址,这些地址指向Android设备自身,应该替换为电脑的局域网IP(比如192.168.1.100:8000)。

内容的提问来源于stack exchange,提问作者JITHIN KRISHNAN P G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:17:23