本地PC运行PHP服务 Flutter真机调试本地API的地址端口配置方法
实体物理设备运行Flutter访问本地PC部署API的配置方案
安卓模拟器专属的10.0.2.2是模拟器框架做的宿主PC地址映射,物理设备不存在这个网络规则,不能直接复用该地址,具体配置方法如下:
前置要求
- 物理移动设备和部署PHP服务的个人PC必须接入同一局域网(同个WiFi、同个手机/PC开启的热点均可,禁止两端分属不同网络)
- PC上运行的PHP服务不能仅绑定
127.0.0.1回环地址,需绑定0.0.0.0允许局域网内其他设备访问 - PC系统防火墙需放开服务使用的
8000端口入站权限,临时测试可先关闭防火墙验证连通性,测通后再单独添加端口放行规则即可
正确的请求地址规则
端口号和模拟器调试阶段保持一致,仍为8000,仅需把地址段替换为PC在当前局域网内的私有IP,最终接口格式为:
http://<PC的局域网私有IP>:8000/api/login
举个实际例子,如果查询到PC当前局域网IP是192.168.3.16,Flutter中配置的请求地址就应该是http://192.168.3.16:8000/api/login
如何获取PC的局域网私有IP
根据你PC的操作系统,选对应方式查询即可:
- Windows系统:打开CMD或PowerShell,执行
ipconfig命令,在当前联网的适配器条目下(连WiFi找WLAN项、插网线找以太网项),找到「IPv4地址」对应的数值就是目标IP - macOS系统:打开终端执行
ipconfig getifaddr en0(WiFi联网时用en0,有线联网替换为en1)即可直接输出IP;也可以打开系统设置-网络,点击当前已连接的网络,直接查看详情页的IP地址 - Linux系统:打开终端执行
ip addr或ifconfig命令,找到当前联网网卡对应的inet字段后的地址,就是目标局域网IP
连通性验证与常见问题
- 配置完地址后,先拿物理设备自带的浏览器直接访问拼好的完整接口地址,只要能收到服务端返回的响应(哪怕是接口参数错误的提示,不是连接超时、无法访问的报错),就说明地址配置正确
- 安卓9及以上版本默认禁止明文HTTP请求,需在项目的
AndroidManifest.xml中添加android:usesCleartextTraffic="true"配置,否则系统会直接拦截请求,和地址本身无关 - iOS端高版本默认拦截非HTTPS请求,需在
Info.plist中添加允许HTTP加载的ATS配置,否则请求会被系统拦截
内容的提问来源于stack exchange,提问作者Suraj Bhandari Nephop
相关产品推荐
相关产品推荐

