Android React native AssemblereRelease无法使用axios获取数据
我有一个实时工作的restful API,返回用nodeJS创建并上传到Web服务器的JSON数据。我还使用react native为android和IOS构建前端。当我使用“react native run android”在android中构建应用程序的调试版本时,api工作正常,并按预期返回数据。但是当我使用“cd-android&&./gradlew-assembleerelease”在android中构建发布版本时,应用程序似乎无法从API获取数据。我在我的应用程序的节点服务器上看不到任何点击。Android React native AssemblereRelease无法使用axios获取数据,android,ios,react-native,axios,nodeapi,Android,Ios,React Native,Axios,Nodeapi,我有一个实时工作的restful API,返回用nodeJS创建并上传到Web服务器的JSON数据。我还使用react native为android和IOS构建前端。当我使用“react native run android”在android中构建应用程序的调试版本时,api工作正常,并按预期返回数据。但是当我使用“cd-android&&./gradlew-assembleerelease”在android中构建发布版本时,应用程序似乎无法从API获取数据。我在我的应用程序的节点服务器上看不到
我正在使用axios进行http请求。我的问题已经解决。根据Google的官方文档,只有在具有有效SSL证书的安全域中才能向web服务器请求。要强制来自不安全域或具有自签名证书的域的HTTP请求,只需在中添加一个文件 “yourProject/android/app/src/main/res/xml/network\u security\u config.xml” 包括以下内容-
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<!-- For React Native Hot-reloading system -->
<!-- If you are running on a device insert your computer IP -->
<domain includeSubdomains="true">localhost</domain>
<domain includeSubdomains="true">your own domain ip</domain>
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</domain-config>
<base-config cleartextTrafficPermitted="false" />
</network-security-config>
本地服务器
您自己的域ip
然后通过在应用程序标记之间将此行添加到AndroidManifest.xml导入xml文件-
<application...
android:networkSecurityConfig="@xml/network_security_config"
...>
在android/app/src/main/AndroidManifest.xml中添加android:usesCleartextTraffic=“true”
,对我来说效果很好。出于开发目的,我们可能还想将其添加到调试文件夹(main的同级)中。这是否与您试图从http而不是https获取数据有关?如果是,请检查此解决方案: