Lăsați node-fetch să aleagă agentul proxy după o redirecționare
Folosiți o funcție de agent pentru destinații HTTP și HTTPS, astfel încât o redirecționare să poată alege agentul proxy potrivit.
Primul URL poate fi HTTPS, iar URL-ul redirecționat HTTP. Alegeți agentul după destinația fiecărei cereri, în loc să legați un singur agent de primul URL.
Pentru pachetul node-fetch importat într-o aplicație ESM, furnizați o funcție:
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,
});Înlocuiți URL-ul API-ului și punctul final al proxy-ului. Pentru un API public permis printr-un intermediar public, lista de proxy-uri HTTP oferă candidați pentru proxyUrl. Cei doi agenți pot folosi același ascultător proxy HTTP; numele lor se referă la cererea către destinație.
| URL transmis selectorului | Agent selectat |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Așadar, funcția selectează în continuare agentul potrivit dacă o redirecționare schimbă protocolul destinației. proxyUrl continuă să descrie intermediarul, independent de această decizie.
Creați agenții o singură dată pentru volumul de lucru și reutilizați-i. Gestionați starea returnată și citiți corpul răspunsului în codul apelant. Această interfață de agent aparține node-fetch; fetch-ul încorporat din Node folosește altă interfață de transport.