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

如何让Android模拟器中的React Native应用访问本地ASP.NET API

解决React Native模拟器访问本地ASP.NET API的问题

先纠正最容易忽略的错误

你输入的API地址http://192.168.084:5000格式错误,正确的本地IP是http://192.168.0.84:5000(多了一个0会导致IP解析失败,这是请求发不出去的直接原因之一)。


方案1:用本地IP访问(无需端口转发)

  1. 确认ASP.NET API的绑定地址
    打开API的Program.cs(或Startup.cs),确保服务绑定到0.0.0.0而不是仅localhost,这样API会监听所有网络接口:
    var builder = WebApplication.CreateBuilder(args);
    builder.WebHost.UseUrls("http://0.0.0.0:5000"); // 添加这行
    
  2. 检查Windows防火墙
    • 打开Windows Defender防火墙 -> 高级设置 -> 入站规则 -> 新建规则
    • 选择“端口”,指定TCP端口5000,允许连接,完成规则创建。或者临时关闭防火墙测试(测试后务必重新开启)。
  3. 修改React Native的API地址
    将请求地址改为http://192.168.0.84:5000,重新运行应用测试。

方案2:用ADB端口转发(用localhost访问)

如果习惯用localhost访问,可通过ADB将模拟器的端口映射到电脑的5000端口:

  1. 打开命令提示符(或PowerShell),执行:
    adb reverse tcp:5000 tcp:5000
    
  2. 之后React Native里直接用http://localhost:5000即可访问本地API。
  3. 注意:每次重启模拟器都需要重新执行该命令,可将其添加到项目的启动脚本中自动执行。

方案3:模拟器代理设置(配合Fiddler抓包或代理场景)

如果需要用Fiddler捕获RN的网络请求,或网络环境需要代理:

  1. 配置Fiddler允许远程连接
    打开Fiddler -> Tools -> Options -> Connections,勾选Allow remote computers to connect,重启Fiddler。
  2. 设置模拟器代理
    打开模拟器的「设置」->「网络与互联网」->「移动网络」->「接入点名称(APN)」:
    • 新建或编辑现有APN,设置代理为192.168.0.84,端口为Fiddler的默认端口8888
    • 保存后重启模拟器的网络开关,此时RN的请求会走代理,Fiddler可以捕获到。

方案4:检查React Native的Android配置

  1. 添加网络权限
    确保android/app/src/main/AndroidManifest.xml中包含网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  2. 允许明文HTTP流量
    因为Android 9及以上默认禁止明文HTTP请求,若API用的是HTTP,需在application标签中添加:
    <application
        ...
        android:usesCleartextTraffic="true">
    
  3. 排查请求代码
    在网络请求的错误处理中打印详细日志,比如:
    fetch('http://192.168.0.84:5000/api/xxx')
      .catch(error => console.log('请求错误:', error))
    
    确认是连接超时、DNS解析失败还是其他问题。

内容的提问来源于stack exchange,提问作者Alexander Ryan Baggett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:35:19