You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Fetch获取未解码的原始Gzip编码网页至Uint8Array?

获取Fetch响应的原始gzip编码内容

要绕过Fetch的自动解码行为,直接获取服务器返回的原始gzip字节流,核心是在发起请求时设置decompress: false选项——Fetch API默认会自动解码带有Content-Encoding: gzip或deflate的响应,这个参数可以禁用该行为。

具体实现代码

async function proxyFetch(url) {
  // 发起请求时禁用自动解码
  const rawResponse = await fetch(url, {
    decompress: false
  });

  // 获取原始的gzip编码字节数组
  const rawBuffer = await rawResponse.arrayBuffer();
  console.log(`原始响应体大小:${rawBuffer.byteLength}字节`);

  // 将原始内容连同原始响应头返回给消费者
  return new Response(rawBuffer, {
    headers: rawResponse.headers
  });
}

关键说明

  • decompress: false是Fetch API的标准配置项,设置后浏览器不会对响应内容进行解码操作,你拿到的就是服务器返回的原始字节数据。
  • 确保目标服务器确实返回了带有Content-Encoding: gzip的响应,否则该配置不会产生任何效果。
  • 返回给消费者时,务必保留原始响应头,这样下游客户端可以根据Content-Encoding头自行决定是否解码内容。

内容的提问来源于stack exchange,提问作者donaddon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:55:23