Undici sender en forespørgsel gennem en dispatcher. Opret en ProxyAgent til den valgte HTTP-proxy, og giv den til fetch-kaldet i stedet for at ændre hele processens globale 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();
}

Gem programmet som en .mjs-fil eller brug et ES-modulprojekt. Erstat dokumentations-IP’en med en HTTP-proxy fra listen over HTTP-proxyer. Importen bruger bevidst Undicis fetch-implementering, så indstillingen dispatcher hører til den viste klient.

Kontrollér Node-kompatibiliteten før du beskylder IP’en

De Node-versioner Undici understøtter afhænger af pakkeudgaven. Eksemplet bruger Undici 8.12.3, som kræver Node 22.19.0 eller nyere. Fejl ved modulindlæsning eller motorversion sker, før forespørgslen når proxyen. Kontrollér den installerede pakkes krav frem for at antage, at enhver Node kører nyeste Undici.

Én agent kan betjene gentagne forespørgsler

Det korte program lukker sin dispatcher til sidst. Hvis et kørende program sender flere forespørgsler gennem samme endepunkt, så behold agenten til den arbejdsbelastning, og luk den efter arbejdets afslutning. At oprette og lukke en agent for hver URL hindrer nyttigt forbindelsesgenbrug.

En global dispatcher passer kun, når du ønsker den bredere ændring. Udtrykkelig overførsel gør det lettere at teste en proxy-IP uden at ændre andre komponenters udgående forespørgsler.

Se på svaret og fejltrinnet

Fetch behandler ikke enhver HTTP-fejlstatus som et afvist Promise. En 403 eller 429 kan være et reelt websitesvar båret gennem proxyen. En forbindelses- eller tunnelfejl kan i stedet afvise forespørgslen, før et svarobjekt findes. Læs status adskilt fra fejl, som kaldet kaster.

Hvis godkendelse kræves, tilbyder Undicis ProxyAgent indstillinger i konstruktøren. Tilføj ikke en proxyautorisationsheader til forespørgslens headere til websitet; agenten håndterer et andet forbindelsesled.

Relaterede artikler