دع node-fetch يختار وكيل البروكسي بعد إعادة التوجيه
استخدم دالة وكيل لوجهات HTTP وHTTPS كي تتمكن إعادة التوجيه من اختيار وكيل البروكسي المناسب.
قد يكون عنوان URL الأول HTTPS بينما العنوان المعاد توجيهه HTTP. اختر الوكيل بحسب وجهة كل طلب، بدلًا من ربط وكيل واحد بعنوان URL الأول.
بالنسبة إلى حزمة node-fetch المستوردة في تطبيق ESM، مرّر دالة:
import fetch from 'node-fetch';
import { HttpProxyAgent } from 'http-proxy-agent';
import { HttpsProxyAgent } from 'https-proxy-agent';
const proxyUrl = 'http://proxy.example:8080';
const httpAgent = new HttpProxyAgent(proxyUrl);
const httpsAgent = new HttpsProxyAgent(proxyUrl);
const response = await fetch('https://api.example/', {
agent: url => url.protocol === 'http:' ? httpAgent : httpsAgent,
});استبدل عنوان API ونقطة نهاية البروكسي. بالنسبة إلى واجهة API عامة مسموح بها عبر وسيط عام، توفّر قائمة بروكسي HTTP مرشحين لقيمة proxyUrl. يمكن للوكيلين استخدام المستمع نفسه لبروكسي HTTP؛ وأسماؤهما تشير إلى طلب الوجهة.
| عنوان URL الممرَّر إلى المحدِّد | الوكيل المختار |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
لذلك لا تزال هذه الدالة تختار الوكيل المطابق إذا غيّرت إعادة التوجيه بروتوكول الوجهة. ويبقى proxyUrl وصفًا للوسيط بصرف النظر عن ذلك القرار.
أنشئ الوكيلين مرة واحدة لعبء العمل وأعد استخدامهما. تعامل مع الحالة المُعادة واقرأ جسم الاستجابة في الشيفرة المستدعية. واجهة الوكيل هذه خاصة بـnode-fetch؛ أما fetch المدمج في Node فيستخدم واجهة نقل مختلفة.