首页 > 解决方案 > ReactNative 中的 API 获取

问题描述

我的名字是 Leo,我是 Reactnative 的新手,我正在尝试登录我的应用程序,但遇到了 fetch API 的问题。我收到 [TypeError:网络请求失败]。我在设备 API 30 上运行这是我的代码:

const loginHadle = async(email, password)=>{
        await fetch ('http://127.0.0.1:8000/login/',{
            method:'POST',
            headers:{
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({"email": email, "password":password})
        }).then(response=>{
            if(response.status==200)
            {
                response.json().then(data=>{
                    signIn(data.email, data.tokens);
                })
            }
        })
        .then(res => {
            console.log("reponse :", res); 
           }).catch(error => {
            console.error(error);
            return { name: "network error", description: "" };
          });

    }

我已经将此行添加到 AndroidManifest.xml

android:usesCleartextTraffic="true"

这是我在邮递员上收到的 邮递员结果

非常感谢!

标签: androidreact-nativeapiandroid-emulatorlocalhost

解决方案


在 Android 9 上,由于“http”和问题解决,只需在 AndroidManifest.xml 中添加 android:usesCleartextTraffic="true"

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application android:usesCleartextTraffic="true"> . . . </application>

推荐阅读