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

react-native-fs调用uploadFiles时toUrl被篡改真机连接80端口报错

问题原因

首先澄清:报错里显示的/180.100.200.202:80不是地址被自动修改,HTTP协议默认端口就是80,你传入的地址没有指定端口,底层网络栈发起连接时默认走80端口,抛出异常时只打印了IP+端口,没有携带完整请求路径,才会造成地址被篡改的错觉。
模拟器运行正常、真机报错的核心原因是两类环境差异:

  • 网络连通性差异:模拟器共享开发电脑的网络环境,和服务端地址网络可达;真机如果使用蜂窝数据、或者和服务端不在同一可路由网段,根本无法连通目标IP的80端口,就会抛出连接失败错误。
  • 系统网络策略差异:安卓9及以上版本默认禁止应用发起HTTP明文请求,仅允许HTTPS请求,你传入的是HTTP开头的地址,会被系统网络栈直接拦截。大部分安卓模拟器默认放开了明文传输限制,所以不会触发该拦截。
  • 网络中间层干扰:如果真机开启了全局代理、VPN、抓包工具,请求会被中间层转发,若规则未对该IP放行,会直接拒绝连接,这类拦截抛出的异常同样不会携带完整请求路径。
解决步骤
  • 先验证基础连通性:将真机连接到和服务端同网段的WiFi,在真机系统浏览器直接访问http://180.100.200.202/api/files/upload,如果无法打开,先排查服务端防火墙、路由规则是否放开真机IP的访问权限。
  • 放开安卓明文传输限制:打开安卓项目下的AndroidManifest.xml文件,在<application>标签中添加android:usesCleartextTraffic="true"属性,允许应用发起HTTP明文请求。若项目target API版本≥33,也可以通过配置网络安全白名单的方式,单独将该IP加入允许明文访问的列表。
  • 检查真机网络配置:关闭真机上运行的VPN、全局代理、抓包类工具后重试,排除中间层拦截的可能。
  • 优先使用HTTPS协议:如果服务端支持HTTPS,直接将上传地址替换为HTTPS开头的地址,可绕过绝大多数系统层面的网络访问限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:30:45