Undici მოთხოვნას dispatcher-ით გზავნის. შექმენით ProxyAgent არჩეული HTTP პროქსისთვის და გადაეცით fetch გამოძახებას მთელი პროცესის გლობალური 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();
}

პროგრამა შეინახეთ .mjs ფაილად ან გამოიყენეთ ES მოდულების პროექტი. დოკუმენტაციის IP შეცვალეთ HTTP პროქსით HTTP პროქსიების სიიდან. იმპორტი განზრახ იყენებს Undici-ის fetch განხორციელებას, ამიტომ dispatcher ოფცია ნაჩვენებ კლიენტს ეკუთვნის.

IP-ის დადანაშაულებამდე Node-ის თავსებადობა შეამოწმეთ

Undici-ის მხარდაჭერილი Node ვერსიები პაკეტის გამოშვებაზეა დამოკიდებული. მაგალითი იყენებს Undici 8.12.3-ს, რომელსაც Node 22.19.0 ან ახალი სჭირდება. მოდულის ჩატვირთვის ან ძრავის ვერსიის შეცდომა მოთხოვნის პროქსიმდე მისვლამდე ხდება. შეამოწმეთ დაყენებული პაკეტის მოთხოვნა, ნუ ჩათვლით, რომ ყველა Node უახლეს Undici-ს ასრულებს.

ერთ agent-ს განმეორებითი მოთხოვნების მომსახურება შეუძლია

მოკლე პროგრამა ბოლოს ხურავს dispatcher-ს. თუ მოქმედი აპლიკაცია იმავე წერტილით რამდენიმე მოთხოვნას გზავნის, agent სამუშაოსთვის შეინარჩუნეთ და დასრულებისას დახურეთ. ყოველი URL-ისთვის agent-ის შექმნა და დახურვა კავშირის სასარგებლო ხელახლა გამოყენებას უშლის ხელს.

გლობალური dispatcher მხოლოდ განზრახ ფართო ცვლილებისთვის გამოდგება. აშკარად გადაცემა აადვილებს პროქსი IP-ის ტესტს სხვა კომპონენტის გამავალი მოთხოვნების შეუცვლელად.

ნახეთ პასუხი და მარცხის ეტაპი

Fetch ყველა HTTP შეცდომის სტატუსს უარყოფილ Promise-ად არ მიიჩნევს. 403 ან 429 შეიძლება პროქსით გადმოტანილი საიტის ნამდვილი პასუხი იყოს. კავშირის ან გვირაბის შეცდომამ კი მოთხოვნა პასუხის ობიექტის შექმნამდე უარყოს. სტატუსი გამოძახების მიერ ნასროლი შეცდომებისგან ცალკე წაიკითხეთ.

თუ ავთენტიფიკაცია საჭიროა, Undici-ის ProxyAgent კონსტრუქტორის ოფციებს გთავაზობთ. პროქსის ავტორიზაციის სათაური საიტის მოთხოვნის სათაურებს არ დაამატოთ; agent ამუშავებს კავშირის სხვა მონაკვეთს.

დაკავშირებული სტატიები