React-native POST 请求 android 通过 https return 网络错误
React-native POST request in android over https return network error
尝试在带有 axios 的 react-native 下通过 https POST 请求创建用户帐户,但它总是在 android 上以 'network error' 失败。
axios('https://'+DEST_URI, {
method: 'post',
data: account,
headers: {
'Accept': 'application/json',
}
then(...)
相同的 https POST 请求在 iOS 上工作正常。
更改为 http,同样的 POST 请求也适用于 android。
还在android上尝试通过 https 进行 GET 请求,它可以按预期从后端服务器检索数据。
有什么想法吗?
链接图像是控制台日志的输出,
output from console log
我在 android 'POST' 请求中遇到了同样的问题。结果是 link 中提到的 headers 问题:https://github.com/facebook/react-native/issues/5222#issuecomment-170239302
添加以下 headers 解决了我的问题
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer ' + this.authToken,
'Content-Type': 'application/x-www-form-urlencoded',
}
我猜你的 AndroidManifest.xml 文件没有互联网权限。
请将此行添加到您的 AndroidManifest.xml 文件中:
<uses-permission android:name="android.permission.INTERNET" />
与 react-native 存储库上的问题 Upgrade to OkHttp3 相关。
从导致问题的代理停用 http2。
您可以尝试升级到 react-native v0.27,他们在更改日志中提到他们解决了这个问题,但对我来说没有用。
我必须禁用 ngnix 中的 http2 功能才能使其正常工作。
禁用 http2 真的很简单,只需将 ngnix 配置文件中的这一行更改为:
listen 443 ssl http2;
到
listen 443 ssl;
然后重新加载您的配置:
service nginx reload
可以找到有关 http2 和 ngnix 的更多信息here
尝试在带有 axios 的 react-native 下通过 https POST 请求创建用户帐户,但它总是在 android 上以 'network error' 失败。
axios('https://'+DEST_URI, {
method: 'post',
data: account,
headers: {
'Accept': 'application/json',
}
then(...)
相同的 https POST 请求在 iOS 上工作正常。
更改为 http,同样的 POST 请求也适用于 android。
还在android上尝试通过 https 进行 GET 请求,它可以按预期从后端服务器检索数据。
有什么想法吗?
链接图像是控制台日志的输出, output from console log
我在 android 'POST' 请求中遇到了同样的问题。结果是 link 中提到的 headers 问题:https://github.com/facebook/react-native/issues/5222#issuecomment-170239302
添加以下 headers 解决了我的问题
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer ' + this.authToken,
'Content-Type': 'application/x-www-form-urlencoded',
}
我猜你的 AndroidManifest.xml 文件没有互联网权限。
请将此行添加到您的 AndroidManifest.xml 文件中:
<uses-permission android:name="android.permission.INTERNET" />
与 react-native 存储库上的问题 Upgrade to OkHttp3 相关。
从导致问题的代理停用 http2。 您可以尝试升级到 react-native v0.27,他们在更改日志中提到他们解决了这个问题,但对我来说没有用。
我必须禁用 ngnix 中的 http2 功能才能使其正常工作。
禁用 http2 真的很简单,只需将 ngnix 配置文件中的这一行更改为:
listen 443 ssl http2;
到
listen 443 ssl;
然后重新加载您的配置:
service nginx reload
可以找到有关 http2 和 ngnix 的更多信息here