Undici درخواست dispatcher سے بھیجتا ہے۔ منتخب HTTP پراکسی کے لیے ProxyAgent بنائیں اور پورے پروسیس کا گلوبل dispatcher بدلنے کے بجائے fetch کال کو دیں۔

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 دوسرے کنکشن حصے کو سنبھالتا ہے۔

متعلقہ مضامین