React Native 应用程序无法访问 Android 上的 HTTP URL - 出了什么问题?

问题描述 投票:0回答:1

我正在尝试从 React Native 应用程序访问此数据源。该 URL 在 iOS 上的浏览器和 RN 应用程序中运行良好,但在 Android 上则不然,我只是收到“获取网络错误”,没有 HTTP 响应代码等。

这是一个演示项目 https://snack.expo.dev/PyhI0-ifGaoh0SygD_xIV?platform=android

由于 Android 无法访问此端点(这似乎是返回一些 JSON 的常规 HTTPS GET 操作),可能会出现什么问题?谁能看出出了什么问题吗?

我尝试使用 Charles Proxy 检查网络流量,它没有给我任何线索,但至少我可以看到请求是从设备发送的。

但我也注意到,当通过启用 SSL 并安装证书的 Charles 代理运行时,上述数据源无法正确响应,即使在 iOS 或 MacOS 上的浏览器中也是如此。看起来响应正在传递,但连接并未关闭,客户端一直在等待。

我不确定这个问题是否与 Android 上的 RN 应用程序无法访问 URL 的问题有关,但这是我经历过的唯一无法通过 Charles 代理访问且也不能通过 RN 应用程序访问的数据源在安卓上?

response hanging forever when Charles inspects the SSL traffic

javascript android react-native https fetch
1个回答
0
投票

看起来处理 gzip 响应有问题。

您的应用程序正在使用 okhttp 发出请求并发送

Accept-Encoding: gzip
标头。更改 fetch 调用以请求未压缩的文本似乎可以解决此问题,例如

fetch(url, {headers: {"Accept-Encoding": "identity"}})
© www.soinside.com 2019 - 2024. All rights reserved.