ANDROID 设备无法向我的服务器发送请求的方式

问题描述 投票:0回答:3

开发者您好, 感谢您一直以来的帮助。

我正在开发一个项目,它在 Web Navigator 上运行良好

Chrome

但是当我使用

Android
构建
react-native
应用程序时,我发现我无法使用
Axios
fetch
中的任何一个向我的服务器发送请求。

catch
始终发送
Error : Network Error
,但它与其他服务器运行良好,这是一些屏幕截图:

我无法弄清楚这一点,所以我希望你们能提供一些帮助。

android react-native server request apache2
3个回答
0
投票

将此添加到您的

android/app/src/main/AndroidManifest.xml
,以下权限用于访问ConnectivityManager

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

0
投票

我之前在 Android 上使用 React Native 时也遇到过同样的问题。

以下是我调试时执行的步骤:

  1. 尝试使用Postman检查您的端点是否正常工作。
  2. 我使用的是 GraphQL,所以我使用 fetch 和 axios 进行了测试,看看它是否返回相同的网络错误。
  3. 在iOS上测试一下是否有效。

完成上述操作后,因为我在自己的服务器上部署了 API 应用程序。我将 graphql 请求指向我的公共 IP (http://xxx.xxx.xxx.xxx/graphql) 并且它有效。您可能需要将

android:usesCleartextTraffic = "true" 
添加到您的
AndroidManifest.xml
才能向 http url 发出请求。

我终于发现这是我的域上安装的 SSL 证书的问题。我用正确的certificate.pem和intermediate.pem重新安装了它,我的问题得到了解决。


0
投票

Android模拟器使用虚拟网络接口,因此localhost或127.0.0.1指的是模拟器自己的环回接口,而不是运行后端服务器的主机的环回接口。

使用

http://10.0.2.2:<PORT>
代替
http://localhost:<PORT>

© www.soinside.com 2019 - 2024. All rights reserved.