Lascia che node-fetch scelga l'agente proxy dopo un reindirizzamento
Usa una funzione agente per destinazioni HTTP e HTTPS, così un reindirizzamento può selezionare l'agente proxy corretto.
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 selettore | Agente 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.