Prvá URL môže byť HTTPS a presmerovaná URL HTTP. Vyberajte agenta podľa cieľa každej požiadavky, namiesto viazania jedného agenta na prvú URL.

Pre importovaný balík node-fetch v aplikácii ESM odovzdajte funkciu:

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

Nahraďte URL rozhrania API a koncový bod proxy. Pre verejné API povolené cez verejného sprostredkovateľa dodá zoznam HTTP proxy kandidátov pre proxyUrl. Oba agenti môžu používať rovnaký poslucháč HTTP proxy; ich názvy sa vzťahujú na požiadavku na cieľovú adresu.

URL odovzdaná selektoruVybraný agent
https://…httpsAgent
http://…httpAgent

Funkcia teda stále vyberá zodpovedajúceho agenta, ak presmerovanie zmení protokol cieľa. proxyUrl naďalej opisuje sprostredkovateľa nezávisle od tohto rozhodnutia.

Agenty vytvorte raz pre danú záťaž a znova ich používajte. Ošetrite vrátený stav a telo odpovede spracujte vo volajúcom kóde. Toto rozhranie agenta patrí node-fetch; vstavaný fetch v Node používa iné transportné rozhranie.

Súvisiace články