Den første URL-en kan være HTTPS, mens den omdirigerte URL-en er HTTP. Velg agenten etter destinasjonen for hver forespørsel, i stedet for å knytte én agent til den første URL-en.

For den importerte node-fetch-pakken i en ESM-applikasjon gir du 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,
});

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

URL som sendes til velgerenValgt agent
https://…httpsAgent
http://…httpAgent

Funksjonen velger derfor fortsatt den riktige agenten hvis en omdirigering endrer protokollen til destinasjonen. proxyUrl beskriver fortsatt mellommannen, uavhengig av denne avgjørelsen.

Opprett agentene én gang for arbeidsbelastningen og bruk dem om igjen. 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