开发者您好, 感谢您一直以来的帮助。
我正在开发一个项目,它在 Web Navigator 上运行良好
Chrome
,
但是当我使用
Android
构建 react-native
应用程序时,我发现我无法使用 Axios
或 fetch
中的任何一个向我的服务器发送请求。
catch
始终发送
Error : Network Error
,但它与其他服务器运行良好,这是一些屏幕截图:
我无法弄清楚这一点,所以我希望你们能提供一些帮助。
将此添加到您的
android/app/src/main/AndroidManifest.xml
,以下权限用于访问ConnectivityManager。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我之前在 Android 上使用 React Native 时也遇到过同样的问题。
以下是我调试时执行的步骤:
完成上述操作后,因为我在自己的服务器上部署了 API 应用程序。我将 graphql 请求指向我的公共 IP (http://xxx.xxx.xxx.xxx/graphql) 并且它有效。您可能需要将
android:usesCleartextTraffic = "true"
添加到您的 AndroidManifest.xml
才能向 http url 发出请求。
我终于发现这是我的域上安装的 SSL 证书的问题。我用正确的certificate.pem和intermediate.pem重新安装了它,我的问题得到了解决。
Android模拟器使用虚拟网络接口,因此localhost或127.0.0.1指的是模拟器自己的环回接口,而不是运行后端服务器的主机的环回接口。
使用
http://10.0.2.2:<PORT>
代替 http://localhost:<PORT>