URL نخست ممکن است HTTPS و URL تغییرمسیریافته 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,
});

URL مربوط به API و نقطهٔ پایانی پروکسی را جایگزین کنید. برای یک API عمومی که از طریق یک واسطهٔ عمومی مجاز است، فهرست پروکسی HTTP نامزدهایی برای proxyUrl فراهم می‌کند. دو عامل می‌توانند از همان شنوندهٔ پروکسی HTTP استفاده کنند؛ نام‌هایشان به درخواست مقصد اشاره دارد.

URL ارسال‌شده به انتخابگرعامل انتخاب‌شده
https://…httpsAgent
http://…httpAgent

بنابراین اگر تغییرمسیر پروتکل مقصد را عوض کند، تابع همچنان عامل منطبق را انتخاب می‌کند. proxyUrl مستقل از این تصمیم همچنان واسطه را توصیف می‌کند.

عامل‌ها را یک بار برای بار کاری بسازید و دوباره استفاده کنید. وضعیت بازگشتی را مدیریت کنید و بدنهٔ پاسخ را در کد فراخوان بخوانید. این رابط عامل متعلق به node-fetch است؛ fetch داخلی Node از رابط انتقال دیگری استفاده می‌کند.

مقالات مرتبط