Hagyd, hogy a node-fetch válassza ki a proxy ügynököt az átirányítás után
Használj ügynökfüggvényt a HTTP és HTTPS célokhoz, hogy az átirányítás kiválaszthassa a megfelelő proxy ügynököt.
Az első URL lehet HTTPS, az átirányított URL pedig HTTP. A kérések célja alapján válaszd ki az ügynököt, ahelyett hogy egyetlen ügynököt kötnél az első URL-hez.
Az ESM alkalmazásban importált node-fetch csomaghoz adj át egy függvényt:
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,
});Cseréld le az API URL-jét és a proxy végpontját. Egy nyilvános közvetítőn keresztül engedélyezett nyilvános API esetén a HTTP proxy lista jelölteket ad a proxyUrl számára. A két ügynök ugyanazt a HTTP proxy figyelőt használhatja; a nevük a cél felé irányuló kérésre utal.
| A választónak átadott URL | Kiválasztott ügynök |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
A függvény tehát továbbra is a megfelelő ügynököt választja, ha az átirányítás megváltoztatja a cél protokollját. A proxyUrl ettől a döntéstől függetlenül továbbra is a közvetítőt írja le.
Az ügynököket egyszer hozd létre a terheléshez, és használd újra őket. Kezeld a visszaadott állapotot, és a hívó kódban olvasd ki a válasz törzsét. Ez az ügynökfelület a node-fetchhez tartozik; a Node beépített fetch-e más átviteli felületet használ.