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

如何将本地Django Rest API连接到Android模拟器?解决端口443异常

问题解答:Android模拟器连接Django Rest API遇端口443问题

一、443端口是什么?

443是HTTPS协议的默认端口,专门用于加密的HTTP通信,和普通HTTP使用的80端口对应。你遇到的错误,本质是Flutter安卓应用在尝试用HTTPS访问你的Django API,但你的Django开发服务器只运行在HTTP的8000端口,因此出现资源找不到的报错。

二、正确连接Android模拟器到Django API的步骤

1. 修正Flutter的BASE_URL配置

安卓模拟器的127.0.0.1指向它自身的本地回环地址,不是你的电脑,所以不能直接用这个地址访问Django服务器。你需要用模拟器专属的网关地址:

  • 原生Android模拟器:使用10.0.2.2:8000,BASE_URL修改为:
    const BASE_URL = "http://10.0.2.2:8000";
    
  • Genymotion模拟器:对应的地址是10.0.3.2:8000

2. 让Django服务器接受外部请求

启动Django开发服务器时,要绑定0.0.0.0,这样才能接收来自模拟器的请求:

python manage.py runserver 0.0.0.0:8000

同时检查settings.py里的ALLOWED_HOSTS,确保包含你的电脑本地IP(比如192.168.x.x),开发环境下也可以临时用['*'](生产环境禁止这么做):

ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '192.168.x.x', '0.0.0.0']

3. 确认CORS配置生效

已经安装corsheaders的情况下,要确保settings.py里的配置正确:

INSTALLED_APPS = [
    # ...其他已安装应用
    'corsheaders',
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',  # 必须放在CommonMiddleware之前
    'django.middleware.common.CommonMiddleware',
    # ...其他中间件
]

# 开发环境允许所有来源,生产环境要指定具体域名
CORS_ALLOW_ALL_ORIGINS = True

4. 排查HTTPS强制问题

检查Flutter代码里有没有强制使用HTTPS:

  • 确保URL是http://开头,不是https://
  • 检查HTTP请求库的配置,有没有自动跳转HTTPS的设置,这类设置会导致请求转向443端口,需要关闭

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:10:23