Az Undici dispatcheren keresztül irányítja a kérést. Hozzon létre ProxyAgentet a kiválasztott HTTP-proxyhoz, és adja a fetch-hívásnak a teljes folyamat globális dispatcherének módosítása helyett.

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

Mentse a programot .mjs fájlként, vagy használjon ES-modulos projektet. A dokumentációs IP-t cserélje HTTP-proxyra a HTTP-proxyk listájából. Az import szándékosan az Undici fetch-megvalósítását használja, ezért a dispatcher opció a bemutatott kliensé.

Az IP hibáztatása előtt ellenőrizze a Node-kompatibilitást

Az Undici által támogatott Node-verziók a csomag kiadásától függenek. A példa Undici 8.12.3-at használ, ami Node 22.19.0-t vagy újabbat igényel. Modulbetöltési vagy motorverzió-hiba még a proxy elérése előtt történik. A telepített csomag követelményeit ellenőrizze; ne feltételezze, hogy minden Node futtatja a legújabb Undicit.

Egy agent több ismételt kérést is kiszolgálhat

A rövid program a végén bezárja a dispatchert. Ha egy futó alkalmazás több kérést küld azonos végponton át, tartsa meg az agentet az adott munkához, és a munka végén zárja be. Agent létrehozása és bezárása minden URL körül akadályozza a kapcsolatok hasznos újrafelhasználását.

Globális dispatcher csak szándékos szélesebb változtatáshoz megfelelő. Kifejezett átadással könnyebb proxy-IP-t tesztelni más komponensek kimenő kéréseinek módosítása nélkül.

Nézze meg a választ és a hiba szakaszát

A fetch nem tekint minden HTTP-hibaállapotot elutasított Promise-nak. A 403 vagy 429 lehet a webhely valós, proxyn áthozott válasza. Egy kapcsolati vagy alagúthiba ehelyett a válaszobjektum előtt is elutasíthatja a kérést. Az állapotot a hívás által dobott hibáktól külön olvassa.

Ha hitelesítés kell, az Undici ProxyAgent konstruktorbeállításokat kínál. Ne adjon proxyengedélyezési fejlécet a webhelynek küldött kérés fejléceihez; az agent más kapcsolati szakaszt kezel.

Kapcsolódó cikkek