axios Brotli在Bun中无法使用,而且我在文档中看不到session正在讨论如何解决这个问题,

8dtrkrch  于 9个月前  发布在  iOS
关注(0)|答案(3)|浏览(216)

描述bug

Axios 在运行 bun 时,没有使用 Brotli 对请求进行解压缩。

重现步骤

在 bun 和 node 中运行此代码,它们的行为不同,因为 bun 在其 zlib 中没有 Brotli 支持,所以我们需要其他实现方法,直到 bun 能够在其 zlib 中添加对 Brotli 的支持。

代码片段

  1. const axios = require('axios');
  2. let url = 'https://abc.com'
  3. let extra = url + '&aaa'
  4. axios.get(extra, {
  5. headers: {
  6. 'Accept-Encoding': 'gzip, deflate, br',
  7. },
  8. })
  9. .then(response => {
  10. console.log(response.data);
  11. })
  12. .catch(error => {
  13. console.error(error);
  14. });

预期行为

代码应该自动解压缩。

axios 版本

1.6.2

适配器版本

???

浏览器

Bun/Node

浏览器版本

1.0.11/v20.8.1

Node.js 版本

v20.8.1

OS

Linux toolbox 6.5.11-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 8 22:37:57 UTC 2023 x86_64 GNU/Linux

其他库版本

  1. Nobody else

其他上下文/截图

  • 无响应*
shyt4zoc

shyt4zoc1#

Bun还没有实现对Brotli的支持,这是一个Bun的bug,而不是Axios的bug。

$x_{1}e^{0f_1}$

qcbq4gxm

qcbq4gxm2#

所以,是否存在其他从C++或Rust实现的绑定?我不同意你的观点,这个问题在16个月前就已经提出,并且影响了Axios在项目迁移到Bun时的准确行为。是的,更好的方法应该是Bun团队实现这个绑定以节省时间给社区,但实际上

  1. 当我们使用这个库时,我们遇到了一个问题
  2. Axios的准确行为需要Brotli的支持,我的意思是Chrome在7年前就开始支持Brotli了,这并不是地球上唯一的Brotli实现
  3. 开源团队应该沟通这些问题,在这种情况下,Axios和Bun都参与了这个问题
    我只是希望两个团队至少讨论过这个问题,因为在其他地方,两个团队都会做错事情
xmjla07d

xmjla07d3#

Bun尚未实现对Brotli的支持——这是Bun的bug,而不是Axios的bug。
oven-sh/bun#267
现在Bun在node:zlib模块中实现了Brotli API:ʘ‿ʘ 🎉🎉

相关问题