Undici instrada una richiesta tramite un dispatcher. Crea un ProxyAgent per il proxy HTTP scelto e passalo alla chiamata fetch anziché cambiare il dispatcher globale dell’intero processo.

npm install [email protected]
import { fetch, ProxyAgent } from 'undici';

const dispatcher = new ProxyAgent('http://203.0.113.10:8080');

try {
  const response = await fetch('https://example.com/', {
    dispatcher,
    signal: AbortSignal.timeout(15000),
  });

  console.log(response.status);
  console.log(await response.text());
} finally {
  await dispatcher.close();
}

Salva il programma come file .mjs oppure usa un progetto con moduli ES. Sostituisci l’IP di documentazione con un proxy HTTP dell’elenco dei proxy HTTP. L’import usa appositamente il fetch di Undici, quindi l’opzione dispatcher appartiene al client mostrato nell’esempio.

Controllare la compatibilità di Node prima di accusare l’IP

Le versioni di Node supportate da Undici dipendono dalla versione del pacchetto. L’esempio usa Undici 8.12.3, che richiede Node 22.19.0 o successivo. Un errore di caricamento del modulo o di versione del motore avviene prima che la richiesta raggiunga un proxy. Controlla i requisiti del pacchetto installato senza presumere che ogni Node esegua l’ultimo Undici.

Un agente può gestire richieste ripetute

Il breve programma chiude il dispatcher alla fine. Se un’applicazione attiva invia più richieste allo stesso endpoint, conserva l’agente per quel carico e chiudilo al termine del lavoro. Creare e chiudere un agente per ogni URL impedisce un utile riuso delle connessioni.

Un dispatcher globale è adatto solo quando vuoi la modifica più ampia. Passarlo esplicitamente facilita la prova di un IP senza cambiare le richieste in uscita di un altro componente.

Osservare la risposta e la fase dell’errore

Fetch non tratta ogni stato HTTP di errore come una promise rifiutata. Un 403 o 429 può essere una risposta reale del sito trasportata dal proxy. Un errore di connessione o di tunnel può invece rifiutare la richiesta prima che esista un oggetto risposta. Leggi lo stato separatamente dagli errori lanciati dalla chiamata.

Se serve autenticazione, ProxyAgent di Undici offre opzioni nel costruttore. Non aggiungere un’intestazione di autorizzazione proxy alle intestazioni dirette al sito; l’agente gestisce un altro tratto della connessione.

Articoli correlati