Den første URL-en kan være HTTPS og den omdirigerte URL-en HTTP. Velg agenten ut fra destinasjonen til hver forespørsel, i stedet for å binde én agent til den første URL-en.

For den importerte node-fetch-pakken i en ESM-applikasjon, oppgi en funksjon:

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

Erstatt API-URL-en og proxy-endepunktet. For et offentlig API som er tillatt gjennom en offentlig mellommann, gir HTTP-proxylisten kandidater til proxyUrl. De to agentene kan bruke samme HTTP-proxy-lytter; navnene deres viser til forespørselen til destinasjonen.

URL sendt til velgerenValgt agent
https://…httpsAgent
http://…httpAgent

Funksjonen velger derfor fortsatt den samsvarende agenten hvis en omdirigering endrer destinasjonens protokoll. proxyUrl beskriver fortsatt mellommannen, uavhengig av den avgjørelsen.

Opprett agentene én gang for arbeidsbelastningen og bruk dem på nytt. Håndter statusen som returneres, og les svarteksten i den kallende koden. Dette agentgrensesnittet tilhører node-fetch; Nodes innebygde fetch bruker et annet transportgrensesnitt.

Relaterte artikler