reactnative 使用fetch post网络请求,android请求异常



  • 上代码:
    let url = 'http://192.168.2.203:8089/login/userLogin'
    api.post = async function (url, params) {
    let headers = {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
    };
    try {
    let formData = new FormData()
    formData.append("usermobile","18291522119");
    formData.append("password","123456");
    console.log(formData);
    let res = await fetch(url, {
    method: 'POST',
    headers: {},
    body: formData,
    });
    let body = await res.json();
    if (!res.ok && !body.errCode) {
    throw ('URL error');
    }
    return {
    ok: res.ok,
    body: body
    };
    } catch (err) {
    console.log(Network doesn\'t work. Error:${err}-------end;);
    return {
    ok: false,
    body: {
    "errCode": "5000001"
    }
    };
    }
    }

    Android运行post请求后报错:
    Error:SyntaxError: Unexpected end of JSON input
    但是get请求正常。

    苹果post和get均运行正常。

    请教大神,帮忙看下什么问题。



  • 如果你的测试手机的系统是安卓9.0,可以试一试以下方法
    第一步,在 res 下新增一个 xml 目录,然后创建一个名为:network_security_config.xml 文件,文件内容如下:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
    <base-configcleartextTrafficPermitted="true"/>
    </network-security-config>
    第二步:在AndroidManifest中application标签下加android:networkSecurityConfig="@xml/network_security_config"
    第三步,你可以运行了