Ensimmäinen URL voi olla HTTPS ja uudelleenohjattu URL HTTP. Valitse agentti jokaisen pyynnön kohteen mukaan sen sijaan, että sitoisit yhden agentin ensimmäiseen URLiin.

Anna ESM-sovelluksessa tuodulle node-fetch-paketille funktio:

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

Korvaa API:n URL ja välityspalvelimen päätepiste. Julkiselle API:lle, joka on sallittu julkisen välittäjän kautta, HTTP-välityspalvelinlista tarjoaa ehdokkaita proxyUrlille. Molemmat agentit voivat käyttää samaa HTTP-välityspalvelimen kuuntelijaa; niiden nimet viittaavat kohteeseen tehtävään pyyntöön.

Valitsimelle välitetty URLValittu agentti
https://…httpsAgent
http://…httpAgent

Funktio valitsee siis edelleen sopivan agentin, jos uudelleenohjaus muuttaa kohteen protokollaa. proxyUrl kuvaa edelleen välittäjää tästä päätöksestä riippumatta.

Luo agentit kerran työkuormaa varten ja käytä niitä uudelleen. Käsittele palautettu tila ja lue vastauksen runko kutsuvassa koodissa. Tämä agenttirajapinta kuuluu node-fetchiin; Noden sisäänrakennettu fetch käyttää eri kuljetusrajapintaa.

Aiheeseen liittyvät artikkelit