安卓端发送GET请求访问本地ASP.NET MVC应用连接被拒如何解决
问题排查解决步骤
你遇到的ECONNREFUSED(连接被拒绝)错误核心是安卓设备无法正常访问你笔记本上运行的ASP.NET MVC服务,按以下步骤逐一排查即可解决:
- 第一步:确认网络互通
安卓手机和笔记本必须连接同一路由器的WiFi,处于同一个局域网网段,禁止手机使用蜂窝移动网络、笔记本插网线走不同网段的情况。可先在手机浏览器直接输入你修改后的电脑IP+端口+接口地址(例如http://192.168.3.12:44374/Beacon/GetAllBeacons),如果浏览器都打不开,说明问题出在服务端/网络层,和安卓代码无关。 - 第二步:修正ASP.NET服务绑定配置
Visual Studio默认启动ASP.NET项目时仅绑定localhost地址,仅允许本机访问,外部设备无法连接。你需要修改项目的Properties/launchSettings.json配置,将对应启动配置的applicationUrl值从http://localhost:44374改为http://0.0.0.0:44374,保存后重启服务即可允许局域网内其他设备访问。也可以用命令行启动服务时指定绑定地址:dotnet run --urls http://0.0.0.0:44374。 - 第三步:放开Windows防火墙限制
Windows系统默认会拦截外部设备访问本机端口,你可以先临时关闭Windows Defender防火墙测试连接是否正常,如果关闭后可以访问,就新增一条入站规则,允许TCP协议的44374端口被外部访问。 - 第四步:修正安卓端配置
- 确认
AndroidManifest.xml中已经添加了网络权限:
<uses-permission android:name="android.permission.INTERNET" />- 你当前的
network_security_config.xml仅放开了localhost的明文访问权限,替换为电脑IP后需要同步添加对应IP的配置,测试阶段可以直接放开所有明文访问简化配置:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true" /> </network-security-config>- 确认代码中请求URL已经替换为笔记本的真实局域网IP(注意不要用127.0.0.1、localhost或者虚拟网卡的IP,Windows可通过
cmd执行ipconfig命令,查看当前连接的网卡对应的IPv4地址)。
- 确认
- 第五步:验证
完成以上配置后先在手机浏览器访问接口地址确认可以正常返回数据,再运行安卓APP发起请求即可。
内容的提问来源于stack exchange,提问作者Tiago Pinto
相关产品推荐
相关产品推荐

