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-ը մշակում է կապի այլ հատված։

Առնչվող հոդվածներ