Нека node-fetch изабере proxy агента након преусмеравања
Користите функцију агента за HTTP и HTTPS одредишта да би преусмеравање могло да изабере одговарајућег proxy агента.
Први URL може бити HTTPS, а преусмерени URL HTTP. Изаберите агента према одредишту сваког захтева, уместо да један агент вежете за први URL.
За увезени пакет node-fetch у ESM апликацији доставите функцију:
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,
});Замените URL API-ја и крајњу тачку proxy-ја. За јавни API дозвољен кроз јавног посредника, листа HTTP proxy-ја даје кандидате за proxyUrl. Два агента могу користити исти HTTP proxy слушалац; њихова имена се односе на захтев према одредишту.
| URL прослеђен селектору | Изабрани агент |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Зато функција и даље бира одговарајућег агента ако преусмеравање промени протокол одредишта. proxyUrl и даље описује посредника, независно од те одлуке.
Направите агенте једном за радно оптерећење и поново их користите. Обрадите враћени статус и прочитајте тело одговора у коду који позива. Овај интерфејс агента припада node-fetch-у; уграђени fetch у Node-у користи друго транспортно сучеље.