2

尝试通过带有 axios 的 react-native 下的 https POST 请求创建用户帐户,而它在 android 上总是失败并出现“网络错误”。

axios('https://'+DEST_URI, {
 method: 'post',
 data: account,
 headers: {
   'Accept': 'application/json',
 }
 then(...)

相同的 https POST 请求在 iOS 上运行良好。

更改为 http,同样的 POST 请求也适用于 android。

还尝试了通过 android 上的 https 获取请求,它可以按预期从后端服务器检索数据。

有什么想法吗?

链接图像是控制台日志的输出,控制台日志的 输出

4

3 回答 3

3

我在使用 android 'POST' 请求时遇到了同样的问题。原来是链接中提到的标题问题:https ://github.com/facebook/react-native/issues/5222#issuecomment-170239302

添加以下标题为我解决了这个问题

headers = {
'Accept': 'application/json',
'Authorization': 'Bearer ' + this.authToken,
'Content-Type': 'application/x-www-form-urlencoded',
}
于 2016-07-04T05:36:54.967 回答
1

与在 react-native 存储库上升级到 OkHttp3的问题相关。

从导致问题的代理中停用 http2。您可以尝试升级到 react-native v0.27,他们在更改日志中提到他们解决了这个问题,但对我来说没有用。

我必须禁用 ngnix 中的 http2 功能才能使其正常工作。

禁用 http2 真的很简单,只需将您的 ngnix 配置文件中的这一行更改为:

listen 443 ssl http2;

listen 443 ssl;

然后重新加载您的配置:

service nginx reload

有关 http2 和 ngnix 的更多信息可以在这里找到

于 2016-07-06T15:57:14.093 回答
0

我猜您的 AndroidManifest.xml 文件中没有 Internet 权限。

请将此行添加到您的 AndroidManifest.xml 文件中:

<uses-permission android:name="android.permission.INTERNET" />

于 2016-07-06T14:53:06.360 回答