在React Native中使用axios时出现网络错误

时间:2020-01-05 12:46:24

标签: android react-native mobile axios react-native-android

对我来说这是一个长期存在的问题,我根本找不到解决方法。

在我的本机反应项目(react-native-cli)中,我使用axios包将请求发送到服务器。 但是,当我使用Android手机进行测试时,它会显示[错误:网络错误]。 有了模拟器,就可以了。

我确定这不是后端问题,因为我已经测试了多台服务器。 而且我也改用fetch,但出现了相同的错误。

这是版本信息。

"axios": "^0.19.0",
"react": "16.9.0",
"react-native": "0.61.5",

有时,它也在Android手机上运行。 这个问题是最大的谜,我受了很长时间。

遇到此问题的人,请让我活着。 谢谢您的仔细阅读。

有时,即使使用Android模拟器也无法使用。但是在删除原始模拟器并创建新的模拟器之后,它就可以使用了。

const serverUrl = "https://server.com";
axios.post(serverUrl + "/api/candidates/login", {
            "email": this.state.email ,
            "password": this.state.password
        }, {
            headers: {
                'Content-Type': 'application/json'
            }
        }).then((response) => {
                console.log(response.data);
        }).catch((error) => {
                console.log(error);
        })

3 个答案:

答案 0 :(得分:0)

我认为这是http和https请求的问题。因此,启用https请求的方法如下:

实现此目的的简单方法是在您的AndroidManifest.xml上使用此属性,您可以在其中为所有请求使用所有http

android:usesCleartextTraffic="true"

答案 1 :(得分:0)

对于 Android,不要使用:localhost,而是使用 10.0.2.2

答案 2 :(得分:-1)

尝试在AndroidManifest.xml中添加以下代码

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