如何通过Axios解压缩Gzip Json响应

9

我正在使用Axios从Web服务器获取JSON响应。 响应以压缩的gzip格式呈现。 我该如何解压响应并获取Json数据。


请查看我在此处的答案底部:https://dev59.com/yZPea4cB1Zd3GeqP_ilW#75308588 - Gilbert
2个回答

9

axios有一个解压选项。不需要手动解压:

const { data } = await axios.get(url, { responseType: 'arraybuffer', 'decompress': true })


此外,如果您的“Accept-Encoding”请求头中不包含gzip(或任何其他压缩格式),则您的服务器不应发送压缩内容。

Axios 默认发送 'gzip, deflate, br' 的 accept-encoding header,因为浏览器通常会解压缩响应,但这在 Node 中会造成问题。 - Xetera

8
const zlib = require('zlib')

let url = "https://example.com/GZ_FILE.gz"

const { data } = await axios.get(url, { responseType: 'arraybuffer' })

zlib.gunzip(data, function (_err, output) {
    console.log(output.toString())
  })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接