Il primo URL può essere HTTPS e l'URL reindirizzato HTTP. Scegli l'agente in base alla destinazione di ogni richiesta, invece di legare un solo agente al primo URL.

Per il pacchetto node-fetch importato in un'applicazione ESM, fornisci una funzione:

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,
});

Sostituisci l'URL dell'API e l'endpoint del proxy. Per un'API pubblica consentita tramite un intermediario pubblico, la lista di proxy HTTP fornisce candidati per proxyUrl. I due agenti possono usare lo stesso listener proxy HTTP; i loro nomi si riferiscono alla richiesta verso la destinazione.

URL passato al selettoreAgente selezionato
https://…httpsAgent
http://…httpAgent

La funzione quindi seleziona ancora l'agente corrispondente se un reindirizzamento cambia il protocollo di destinazione. proxyUrl continua a descrivere l'intermediario, indipendentemente da quella scelta.

Crea gli agenti una volta per il carico di lavoro e riutilizzali. Gestisci lo stato restituito e consuma il corpo della risposta nel codice chiamante. Questa interfaccia agente appartiene a node-fetch; il fetch integrato di Node usa un'interfaccia di trasporto diversa.

Articoli correlati