תנו ל-node-fetch לבחור את סוכן הפרוקסי לאחר הפניה מחדש
השתמשו בפונקציית סוכן עבור יעדי HTTP ו-HTTPS כדי שהפניה מחדש תוכל לבחור את סוכן הפרוקסי המתאים.
כתובת ה-URL הראשונה עשויה להיות HTTPS והכתובת לאחר ההפניה מחדש HTTP. בחרו את הסוכן לפי היעד של כל בקשה, במקום לקשור סוכן אחד לכתובת הראשונה.
עבור החבילה 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 משתמש בממשק תעבורה אחר.