بگذارید node-fetch پس از یک تغییرمسیر عامل پروکسی را انتخاب کند
برای مقصدهای HTTP و HTTPS یک تابع عامل بدهید تا تغییرمسیر بتواند عامل پروکسی مناسب را انتخاب کند.
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 از رابط انتقال دیگری استفاده میکند.