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. Эти заголовки отправляются непосредственно на прокси-сервер в запросах CONNECT (для HTTPS-целей) или в прокси-запросе (для 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