Nechte node-fetch vybrat proxy agenta až po přesměrování
Použijte funkci agenta pro cíle HTTP i HTTPS, aby přesměrování mohlo vybrat odpovídajícího proxy agenta.
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á selektoru | Vybraný 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í.