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

React Native调用本地IIS接口报"Network request failed"问题求助

本地IIS API React Native Android访问证书问题解决方案

证书选择:优先使用mkcert

IIS自带的自签名证书兼容性极差,React Native的OkHttp网络栈会严格校验证书链,即便手动将证书安装到设备,也大概率不被App信任。mkcert生成的证书基于本地信任根,能被Android系统和React Native网络层自动认可,无需在设备上单独手动安装,可靠性远高于IIS自签名证书。

mkcert针对IP访问的生成步骤

  1. 先完成mkcert初始化,安装本地信任根:
    mkcert -install
    
  2. 生成包含局域网服务器IP的证书(替换成你的服务器实际IP,可同时添加localhost、127.0.0.1作为备用):
    mkcert 192.168.1.100 localhost 127.0.0.1
    
  3. 导出IIS可用的PFX格式证书(设置自定义密码,后续IIS配置时需要输入):
    mkcert -pkcs12 192.168.1.100.pfx 192.168.1.100
    
  4. 在IIS中绑定此PFX证书到你的API站点,确保端口(默认443)与IP绑定配置正确。

Android端配置

1. 修改AndroidManifest.xml

在<application>标签中添加android:networkSecurityConfig属性:

<application
  ...
  android:networkSecurityConfig="@xml/network_security_config">

2. 创建network_security_config.xml文件

在android/app/src/main/res/xml目录下新建该文件,配置内容如下:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <!-- 替换成你的服务器局域网IP -->
        <domain includeSubdomains="true">192.168.1.100</domain>
        <!-- 信任系统及用户安装的证书,确保mkcert根证书被识别 -->
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </domain-config>
    <!-- Debug模式下额外信任用户证书(可选) -->
    <debug-overrides>
        <trust-anchors>
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>
  • cleartextTrafficPermitted="false"强制走HTTPS,符合生产环境规范。
  • 若使用真机测试,需将mkcert生成的根证书(通过mkcert -CAROOT命令可找到路径)安装到真机的系统证书目录(部分Android版本不认可用户目录下的证书)。

3. 验证要点

确保React Native的API请求URL以HTTPS开头,例如https://192.168.1.100/api/test。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:30:02