【问题标题】:Way ANDROID DEVICES can't send requests to my server方式 ANDROID 设备无法向我的服务器发送请求
【发布时间】:2021-10-26 16:20:52
【问题描述】:

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

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

但是当我使用react-native 构建Android 应用程序时,我发现我无法使用Axios 或fetch 向我的服务器发送请求。

catch 总是发送 Error : Network Error,但它在其他服务器上运行良好,这里有一些截图:

我想不通,所以我希望你们能提供一些帮助。

【问题讨论】:

    标签: android react-native server request apache2


    【解决方案1】:

    将此添加到您的android/app/src/main/AndroidManifest.xml,以下权限用于访问ConnectivityManager。

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

    【讨论】:

    • 是的,我也添加了这个属性。但还是不行
    • 我可以从其他服务器获取但不是我的。
    • 您是否为此使用本地主机服务器?如果是,请尝试将 localhost 替换为 10.0.2.2。
    • 不是https子域,问题可能出在服务器上吗?但它在本地主机上运行良好我尝试了它
    • 不能说问题是否来自服务器。 This 和 this 可以帮助您。
    【解决方案2】:

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

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

    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 重新安装了它,我的问题得到了解决。

    【讨论】:

    • 在我的情况下,问题可能也来自 SSL,但我们想出另一种解决方案是将网站与另一个域链接,然后它就可以工作了。
    猜你喜欢
    • 2022-09-26
    • 2015-11-18
    • 2016-07-03
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多