Undici usmerava zahtev kroz dispatcher. Napravite ProxyAgent za izabrani HTTP proxy i prosledite ga fetch pozivu umesto menjanja globalnog dispatchera celog procesa.

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

Sačuvajte program kao .mjs datoteku ili koristite projekat ES modula. Dokumentacijski IP zamenite HTTP proxyjem s liste HTTP proxyja. Uvoz namerno koristi Undicijevu fetch implementaciju, pa opcija dispatcher pripada prikazanom klijentu.

Proverite kompatibilnost Nodea pre nego okrivite IP

Podržane verzije Nodea zavise od izdanja Undici paketa. Primer koristi Undici 8.12.3, koji zahteva Node 22.19.0 ili noviji. Greška učitavanja modula ili verzije izvršnog okruženja nastaje pre nego zahtev stigne do proxyja. Proverite zahteve instaliranog paketa, ne pretpostavljajte da svaki Node pokreće najnoviji Undici.

Jedan agent može služiti ponovljenim zahtevima

Kratki program zatvara dispatcher na kraju. Ako aktivna aplikacija šalje više zahteva kroz istu tačku, zadržite agenta za taj posao i zatvorite ga kada posao završi. Pravljenje i zatvaranje agenta za svaki URL sprečava korisnu ponovnu upotrebu veza.

Globalni dispatcher odgovara samo kada nameravate širu promenu. Izričito prosleđivanje olakšava test proxy IP-a bez promene izlaznih zahteva druge komponente.

Pogledajte odgovor i fazu neuspeha

Fetch ne tretira svaki HTTP status greške kao odbijeni Promise. 403 ili 429 može biti stvarni odgovor stranice prenesen proxyjem. Greška veze ili tunela može, naprotiv, odbiti zahtev pre postojanja objekta odgovora. Čitajte status odvojeno od grešaka koje poziv izbacuje.

Ako je potrebna autentifikacija, Undicijev ProxyAgent ima opcije u konstruktoru. Ne dodajte zaglavlje proxy autorizacije zaglavljima zahteva stranice; agent obrađuje drugi deo veze.

Povezani članci