Skip to content

在 Bun 中,fetch 支持通过 HTTP 或 HTTPS 代理发送请求。这在公司网络上或当你需要确保请求通过特定 IP 地址发送时很有用。

ts
await fetch("https://example.com", {
  // 代理服务器的 URL
  proxy: "https://username:password@proxy.example.com:8080",
});

proxy 选项可以是 URL 字符串或带有 url 和可选 headers 的对象。如果代理需要身份验证,URL 可以包含用户名和密码。它可以是 http://https://


自定义代理头

要向代理服务器发送自定义头(对于代理身份验证令牌、自定义路由等很有用),请使用对象格式:

ts
await fetch("https://example.com", {
  proxy: {
    url: "https://proxy.example.com:8080",
    headers: {
      "Proxy-Authorization": "Bearer my-token",
      "X-Proxy-Region": "us-east-1",
    },
  },
});

headers 属性接受普通对象或 Headers 实例。这些头直接发送到代理服务器,用于 HTTPS 目标的 CONNECT 请求或 HTTP 目标的代理请求。

如果你提供了 Proxy-Authorization 头,它将覆盖代理 URL 中指定的任何凭据。


环境变量

你还可以将 $HTTP_PROXY$HTTPS_PROXY 环境变量设置为代理 URL。当你想对所有请求使用相同的代理时,这很有用。

sh
HTTPS_PROXY=https://username:password@proxy.example.com:8080 bun run index.ts

Bun学习网由www.bunjs.com.cn整理维护