První URL může být HTTPS a přesměrovaná URL HTTP. Vybírejte agenta podle cíle každého požadavku, místo abyste jeden agent vázali na první URL.

U importovaného balíčku node-fetch v aplikaci ESM předejte funkci:

import fetch from 'node-fetch';
import { HttpProxyAgent } from 'http-proxy-agent';
import { HttpsProxyAgent } from 'https-proxy-agent';

const proxyUrl = 'http://proxy.example:8080';
const httpAgent = new HttpProxyAgent(proxyUrl);
const httpsAgent = new HttpsProxyAgent(proxyUrl);

const response = await fetch('https://api.example/', {
  agent: url => url.protocol === 'http:' ? httpAgent : httpsAgent,
});

Nahraďte URL rozhraní API a koncový bod proxy. Pro veřejné API povolené přes veřejného zprostředkovatele dodá seznam HTTP proxy kandidáty pro proxyUrl. Oba agenti mohou používat stejný posluchač HTTP proxy; jejich názvy se vztahují k požadavku na cílovou adresu.

URL předaná selektoruVybraný agent
https://…httpsAgent
http://…httpAgent

Funkce tedy stále vybírá odpovídajícího agenta, i když přesměrování změní protokol cíle. proxyUrl nadále popisuje zprostředkovatele nezávisle na tomto rozhodnutí.

Agenty vytvořte jednou pro danou zátěž a znovu je používejte. Ošetřete vrácený stav a tělo odpovědi zpracujte ve volajícím kódu. Toto rozhraní agenta patří node-fetch; vestavěný fetch v Node používá jiné transportní rozhraní.

Související články