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 selectoruluiAgent 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.

Articole similare