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 で指定された認証情報を上書きします。
環境変数
プロキシ URL に $HTTP_PROXY または $HTTPS_PROXY 環境変数を設定することもできます。これは、すべてのリクエストで同じプロキシを使用する場合に役立ちます。
sh
HTTPS_PROXY=https://username:password@proxy.example.com:8080 bun run index.ts