我的RN应用程序在iOS上运行得很好。但在安卓上,它无法到达后端(使用https托管在云中)或任何其他网址,如https://randomuser.me/api
但是当我让设备使用Charles作为HTTP代理,安装Charles根证书并为后端主机名(或randomuser.org)启用SSL代理时-它工作起来没有任何问题。
这个问题在2台android 9物理设备和Android 11模拟器上都存在。
我相信我需要更改应用程序代码中的某种配置,以便让应用程序调用我的后端-它以前已经起作用了,但现在升级了包括Android Studio在内的所有东西后就不起作用了。或者可能设备已经搞砸了?
不幸的是,Apisauce的错误并没有给我太多的提示。我也尝试过原始抓取,在没有通过Charles SSL代理的时候得到了这个错误。
我从fetch
得到的唯一东西就是Fetch ERROR [TypeError: Network request failed]
会出什么问题呢?
发布于 2021-08-13 15:04:33
在app/src/main/res/xml
文件夹中创建network_security_config.xml
文件(如果没有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>
在AndroidManifest.xml中添加以下两行
<application
...
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
...
>
重新安装应用程序
https://stackoverflow.com/questions/68774476
复制相似问题