Pustite, da node-fetch izbere posredniškega agenta po preusmeritvi
Uporabite funkcijo agenta za cilje HTTP in HTTPS, da lahko preusmeritev izbere ustreznega posredniškega agenta.
Prvi URL je lahko HTTPS, preusmerjeni URL pa HTTP. Izberite agenta glede na cilj vsake zahteve, namesto da enega agenta privežete na prvi URL.
Za uvožen paket node-fetch v aplikaciji ESM podajte funkcijo:
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,
});Zamenjajte URL API-ja in končno točko posrednika. Za javni API, dovoljen prek javnega posrednika, seznam posrednikov HTTP ponuja kandidate za proxyUrl. Oba agenta lahko uporabljata isti poslušalec posrednika HTTP; njuni imeni se nanašata na zahtevo na cilj.
| URL, posredovan izbirniku | Izbrani agent |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Funkcija torej še vedno izbere ustreznega agenta, če preusmeritev spremeni protokol cilja. proxyUrl še naprej opisuje posrednika, neodvisno od te odločitve.
Agenta ustvarite enkrat za delovno obremenitev in ju znova uporabite. Obdelajte vrnjeno stanje in preberite telo odgovora v klicoči kodi. Ta vmesnik agenta pripada node-fetch; vgrajeni fetch v Node uporablja drug transportni vmesnik.