Prvi URL može biti HTTPS, a preusmjereni URL HTTP. Odaberite agent prema odredištu svakog zahtjeva, umjesto da jedan agent vežete uz prvi URL.

Za uvezeni paket node-fetch u ESM aplikaciji dostavite funkciju:

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,
});

Zamijenite URL API-ja i krajnju točku proxyja. Za javni API dopušten kroz javnog posrednika, popis HTTP proxyja daje kandidate za proxyUrl. Dva agenta mogu koristiti isti HTTP proxy listener; njihova imena odnose se na zahtjev prema odredištu.

URL proslijeđen selektoruOdabrani agent
https://…httpsAgent
http://…httpAgent

Stoga funkcija i dalje odabire odgovarajući agent ako preusmjeravanje promijeni protokol odredišta. proxyUrl i dalje opisuje posrednika, neovisno o toj odluci.

Stvorite agente jednom za radno opterećenje i ponovno ih upotrijebite. Obradite vraćeni status i pročitajte tijelo odgovora u kodu koji poziva. Ovo sučelje agenta pripada node-fetchu; ugrađeni fetch u Nodeu rabi drugo transportno sučelje.

Povezani članci