在android中,获取请求在react native for https而非http中失败
下面是我用来发出获取请求的代码。我似乎只面临https请求的问题,而不是android中的http。我正在使用Android studio和模拟器来开发代码在android中,获取请求在react native for https而非http中失败,android,react-native,react-redux,Android,React Native,React Redux,下面是我用来发出获取请求的代码。我似乎只面临https请求的问题,而不是android中的http。我正在使用Android studio和模拟器来开发代码 fetch('https://facebook.github.io/react-native/movies.json') .then((response) => response.json()) .then((responseJson) => { console.log("Success"
fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
console.log("Success");
})
.catch((error) => {
console.error(error);
});
我得到的答复如下:
D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\Core\ExceptionsManager.js:73 TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (D:\RNApp\newtest\TheTestApp\node_modules\whatwg-fetch\fetch.js:441)
at XMLHttpRequest.dispatchEvent (D:\RNApp\newtest\TheTestApp\node_modules\event-target-shim\lib\event-target.js:172)
at XMLHttpRequest.setReadyState (D:\RNApp\newtest\TheTestApp\node_modules\react-
native\Libraries\Network\XMLHttpRequest.js:569)
at XMLHttpRequest.__didCompleteResponse (D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\Network\XMLHttpRequest.js:399)
at D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\Network\XMLHttpRequest.js:505
at RCTDeviceEventEmitter.emit (D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\vendor\emitter\EventEmitter.js:181)
at MessageQueue.__callFunction (D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:353)
at D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:118
at MessageQueue.__guardSafe (D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:316)
at MessageQueue.callFunctionReturnFlushedQueue (D:\RNApp\newtest\TheTestApp\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:117)
我目前正在使用react native v0.53.3。我一直在寻找解决这个问题的办法,已经有一段时间了。如果有人能帮助我,那就太好了
谢谢。经过大量研究和大脑损伤,我发现问题很简单。我使用的网络有一个代理服务器,它对所有SSL通信进行加密。因此,解决方案是将相关证书安装到仿真器中 因此,从连接到同一网络的桌面浏览器中,我下载了与该代理服务器相关的所有证书,并将其导入emulator的SD卡(存储器)。此导入和安装可以按照本文中提到的步骤完成
完成后,我重新运行上述代码,发现响应成功。希望这能帮助那些与我处境相同的人。模拟器中的时间设置正确吗?这对验证证书很重要。是的,时间设置为我的系统时间。我担心这是否是我工作的公司的网络问题,但我想可以肯定地说,这不是因为http似乎工作正常。此外,当我尝试使用google的firebase实现电子邮件和密码登录时,我似乎面临着“身份验证/网络请求失败”的问题,我猜这与上面显示的问题相同。