在React-Native 0.59的项目中,在Android 真机上使用fetch请求链接 `https://webapi-pc.meitu.com/common/ip_location` 出现错误 'TypeError: Network request failed'。
该ip在浏览器上以及使用原生okhttp请求都没有问题,但是使用fetch就是出现问题。
经过一番搜索,有建议在<application>标签中添加android:usesCleartextTraffic="true"以及android:networkSecurityConfig 都不能解决问题。
最后,找到了解决办法,如下:
import RNFetchBlob from 'rn-fetch-blob';
RNFetchBlob.config({
trusty:true
}).fetch('GET','https://webapi-pc.meitu.com/common/ip_location')
.then((res) => res.json())
.then(({data}) => {
const ip = Object.keys(data || {})?.[0];
resolve({...data?.[ip], ip});
})
.catch((e) => {
Log('获取用户代理信息出错:' + JSON.stringify(e));
reject(e);
});
以上重点是配置了 trusty:true
最后附上原链接:https://github.com/facebook/react-native/issues/24627#issuecomment-505599211