Ionic安卓设备调用本地ASP.NET Core WebAPI报ERR_CONNECTION_TIMED_OUT求助
排查解决步骤
第一步:验证基础网络连通性
先拿安卓实体机自带的浏览器,直接输入你调用的API完整地址(关闭SSL后用http://<电脑IP>:<端口>/<接口路径>),看是否能正常访问返回结果:
- 访问失败:属于电脑/网络层面配置问题
- 访问成功:属于Ionic/Cordova应用层面配置问题
网络层面问题排查
- 确认电脑IP正确性:Windows系统按
Win+R输入cmd打开命令行,执行ipconfig,找到当前连接的WiFi对应的IPv4地址,排除虚拟网卡、以太网的错误IP - 确认IIS Express绑定规则:右键任务栏IIS Express图标,查看运行站点的绑定列表,确保存在
http://<电脑IP>:<端口>/的绑定,不是仅绑定localhost - 配置防火墙规则:即使关闭了全局防火墙,也单独添加入站规则:Windows Defender防火墙→高级设置→入站规则→新建规则→端口→TCP→填写你后端服务的端口→允许连接→全选域/专用/公网→命名保存即可
应用层面问题排查
- 配置Cordova白名单:在项目根目录的
config.xml中添加如下配置,测试阶段先放开所有限制,验证通过后再收紧权限
<access origin="*" /> <allow-navigation href="*" />
- 验证安卓网络权限:检查
platforms/android/app/src/main/AndroidManifest.xml中是否存在以下权限配置,缺失则补上
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- 适配安卓明文请求限制:安卓9及以上系统默认禁止HTTP明文请求,你已关闭SSL走HTTP协议,需要添加网络安全配置:
- 在
resources/android/xml/目录下新建network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config>- 在
config.xml的Android平台配置块中添加如下配置,关联安全配置文件:
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application"> <application android:networkSecurityConfig="@xml/network_security_config" /> </edit-config> - 在
- 清除缓存重新编译:执行以下命令重置安卓平台,避免旧配置缓存影响
ionic cordova platform rm android ionic cordova platform add android@10.1.0 ionic cordova run android --device
内容的提问来源于stack exchange,提问作者MRichards
相关产品推荐
相关产品推荐

