Nechajte node-fetch vybrať proxy agenta po presmerovaní
Použite funkciu agenta pre ciele HTTP aj HTTPS, aby presmerovanie mohlo vybrať zodpovedajúceho proxy agenta.
Prvá URL môže byť HTTPS a presmerovaná URL HTTP. Vyberajte agenta podľa cieľa každej požiadavky, namiesto viazania jedného agenta na prvú URL.
Pre importovaný balík node-fetch v aplikácii ESM odovzdajte funkciu:
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 rozhrania API a koncový bod proxy. Pre verejné API povolené cez verejného sprostredkovateľa dodá zoznam HTTP proxy kandidátov pre proxyUrl. Oba agenti môžu používať rovnaký poslucháč HTTP proxy; ich názvy sa vzťahujú na požiadavku na cieľovú adresu.
| URL odovzdaná selektoru | Vybraný agent |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Funkcia teda stále vyberá zodpovedajúceho agenta, ak presmerovanie zmení protokol cieľa. proxyUrl naďalej opisuje sprostredkovateľa nezávisle od tohto rozhodnutia.
Agenty vytvorte raz pre danú záťaž a znova ich používajte. Ošetrite vrátený stav a telo odpovede spracujte vo volajúcom kóde. Toto rozhranie agenta patrí node-fetch; vstavaný fetch v Node používa iné transportné rozhranie.