android - 在android上反应本机获取网络请求失败
问题描述
我正在尝试从 mocky 接收一些简单的 json。
反应本机获取功能:
getMemberDomainList = async (name) => {
try {
let response = await fetch('https://5c9cc9ed3be4e30014a7d287.mockapi.io/api/domain', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
});
let responseJson = await response.json();
return responseJson;
} catch (error) {
console.error(error);
}
}
我已经在 Windows 上测试了 chrome 中的地址,它返回了预期的模拟数据。但是当在我的安卓手机上调用这个函数时,我得到了这个错误
来自远程调试器的错误
...\node_modules\react-native\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:2348 TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:4337)
at XMLHttpRequest.dispatchEvent (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10760)
at XMLHttpRequest.setReadyState (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10511)
at XMLHttpRequest.__didCompleteResponse (...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10343)
at ...\Libraries\Renderer\oss\ReactNativeRenderer-dev.js:10449
at RCTDeviceEventEmitter.emit (...\Libraries\Components\DrawerAndroid\DrawerLayoutAndroid.android.js:11)
at MessageQueue.__callFunction (...\Libraries\ART\ReactNativeART.js:362)
at blob:http://localhost:8081/79251787-d190-4650-8040-23d091c08738:2334
at MessageQueue.__guard (...\Libraries\ART\ReactNativeART.js:312)
at MessageQueue.callFunctionReturnFlushedQueue (...\Libraries\ART\ReactNativeART.js:139)
我还在我的应用程序中运行了一个 WebView,它指向一个 web url,它加载完美,所以我确信手机有互联网权限和访问权限等。
解决方案
在最新的 android 版本中,默认情况下不允许 http 请求。查看这篇文章以获取有关允许 http 请求的更多信息:如何在 Android (9) Pie 中允许所有网络连接类型 HTTP 和 HTTPS?
推荐阅读
- c++ - 如何使外部定义的全局运算符成为朋友
- wordpress - Wordpress 插件:wp_schedule_single_event 的钩子永远不会被调用
- javascript - 错误“无法读取 null 的属性 'addEventListener'”
- r - 如何在基础 R 中绘制此图表?
- asp.net-core - .NET Core - 增加 Http web api 响应限制
- python - Scrapy将重复的键附加到mongodb列表
- python - Pyspark DataFrame - 转义 &
- git - 我应该在创建新分支之前结帐到 div 吗?
- freebsd - 有没有办法用 FreeBSD 控制 GPIO 端口?
- postgresql - EF Core AsSplitQuery 不尊重 OrderBy