Undici novirza pieprasījumu caur dispatcher. Izveidojiet ProxyAgent izvēlētajam HTTP starpniekserverim un nododiet fetch izsaukumam, nevis mainiet visa procesa globālo 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();
}

Saglabājiet programmu kā .mjs failu vai izmantojiet ES moduļu projektu. Dokumentācijas IP aizstājiet ar HTTP starpniekserveri no HTTP starpniekserveru saraksta. Imports apzināti izmanto Undici fetch īstenojumu, tāpēc dispatcher opcija pieder parādītajam klientam.

Pirms IP vainošanas pārbaudiet Node saderību

Undici atbalstītās Node versijas ir atkarīgas no pakotnes laidiena. Piemērs izmanto Undici 8.12.3, kam vajag Node 22.19.0 vai jaunāku. Moduļa ielādes vai dzinēja versijas kļūda rodas pirms pieprasījuma nonākšanas pie starpniekservera. Pārbaudiet instalētās pakotnes prasības, neuzskatiet, ka katrs Node darbina jaunāko Undici.

Viens aģents var apkalpot atkārtotus pieprasījumus

Īsā programma beigās aizver dispatcher. Ja aktīva lietotne sūta vairākus pieprasījumus caur to pašu punktu, saglabājiet aģentu šai slodzei un aizveriet pēc darba beigām. Aģenta veidošana un aizvēršana katram URL traucē lietderīgu savienojumu atkārtotu izmantošanu.

Globāls dispatcher der tikai apzināti plašākai izmaiņai. Skaidra nodošana atvieglo proxy IP pārbaudi, nemainot cita komponenta izejošos pieprasījumus.

Skatiet atbildi un kļūmes posmu

Fetch neuzskata katru HTTP kļūdas statusu par noraidītu Promise. 403 vai 429 var būt īsta vietnes atbilde, ko pārsūtījis starpniekserveris. Savienojuma vai tuneļa kļūda var noraidīt pieprasījumu pirms atbildes objekta. Statusu lasiet atsevišķi no izsaukuma izmestajām kļūdām.

Ja vajag autentifikāciju, Undici ProxyAgent piedāvā konstruktora opcijas. Nepievienojiet starpniekservera autorizācijas galveni vietnes pieprasījuma galvenēm; aģents apstrādā citu savienojuma posmu.

Saistītie raksti