Leiskite node-fetch pasirinkti tarpinio serverio agentą po peradresavimo
Naudokite agento funkciją HTTP ir HTTPS paskirties vietoms, kad peradresavimas galėtų pasirinkti tinkamą tarpinio serverio agentą.
Pirmasis URL gali būti HTTPS, o peradresuotas URL – HTTP. Rinkitės agentą pagal kiekvienos užklausos paskirties vietą, o ne pririškite vieną agentą prie pirmojo URL.
ESM programoje importuotam node-fetch paketui pateikite funkciją:
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,
});Pakeiskite API URL ir tarpinio serverio galinį tašką. Viešajam API, leidžiamam per viešą tarpininką, HTTP tarpinių serverių sąrašas pateikia kandidatus proxyUrl. Abu agentai gali naudoti tą patį HTTP tarpinio serverio klausytuvą; jų pavadinimai nurodo užklausą į paskirties vietą.
| URL, perduotas selektoriui | Pasirinktas agentas |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Todėl funkcija vis tiek pasirenka atitinkamą agentą, jei peradresavimas pakeičia paskirties protokolą. proxyUrl toliau aprašo tarpininką, nepriklausomai nuo šio sprendimo.
Sukurkite agentus vieną kartą darbui ir naudokite pakartotinai. Apdorokite grąžintą būseną ir perskaitykite atsakymo turinį jį kviečiančiame kode. Ši agento sąsaja priklauso node-fetch; įtaisytasis Node fetch naudoja kitą transporto sąsają.