Undici skickar en begäran genom en dispatcher. Skapa en ProxyAgent för vald HTTP-proxy och skicka den till fetch-anropet i stället för att ändra hela processens globala dispatcher.

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

Spara programmet som en .mjs-fil eller använd ett ES-modulprojekt. Byt dokumentations-IP:n mot en HTTP-proxy från listan över HTTP-proxyer. Importen använder avsiktligt Undicis fetch-implementation, så alternativet dispatcher hör till klienten som visas.

Kontrollera Node-kompatibilitet innan du skyller på IP:n

Node-versionerna som Undici stöder beror på paketutgåvan. Exemplet använder Undici 8.12.3, som kräver Node 22.19.0 eller senare. Ett fel vid modulladdning eller motorversion inträffar innan begäran når proxyn. Kontrollera det installerade paketets krav i stället för att anta att varje Node kör senaste Undici.

En agent kan betjäna upprepade begäranden

Det korta programmet stänger sin dispatcher på slutet. Om ett aktivt program skickar flera begäranden genom samma ändpunkt, behåll agenten för arbetslasten och stäng den när arbetet är klart. Att skapa och stänga en agent för varje URL hindrar användbar anslutningsåteranvändning.

En global dispatcher passar bara när du avser den bredare ändringen. Att skicka den uttryckligen gör det lättare att testa en proxy-IP utan att ändra andra komponenters utgående begäranden.

Titta på svaret och felsteget

Fetch behandlar inte varje HTTP-felstatus som en avvisad Promise. En 403 eller 429 kan vara ett verkligt webbplatssvar som proxyn förmedlat. Ett anslutnings- eller tunnelfel kan i stället avvisa begäran innan ett svarsobjekt finns. Läs statusen separat från fel som anropet kastar.

Om autentisering krävs erbjuder Undicis ProxyAgent alternativ i konstruktorn. Lägg inte en proxyauktoriseringsheader i begäranshuvudena till webbplatsen; agenten hanterar ett annat anslutningsled.

Relaterade artiklar