Használjon proxy-IP-t a Node Undicijével
Adjon Undici ProxyAgentet egy fetch-kéréshez, és különítse el a kapcsolatkészletet a többi Node-forgalomtól.
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.