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整理維護