Den første URL kan være HTTPS og den omdirigerede URL HTTP. Vælg agenten ud fra destinationen for hver anmodning i stedet for at binde én agent til den første URL.

Til den importerede node-fetch-pakke i en ESM-applikation skal du angive en funktion:

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

Erstat API-URL'en og proxy-endpointet. Til et offentligt API, der er tilladt gennem en offentlig mellemmand, giver HTTP-proxylisten kandidater til proxyUrl. De to agenter kan bruge den samme HTTP-proxy-lytter; deres navne henviser til anmodningen til destinationen.

URL sendt til vælgerenValgt agent
https://…httpsAgent
http://…httpAgent

Funktionen vælger derfor stadig den matchende agent, hvis en omdirigering ændrer destinationens protokol. proxyUrl beskriver fortsat mellemmanden, uafhængigt af den beslutning.

Opret agenterne én gang til arbejdsbyrden, og genbrug dem. Håndtér den returnerede status, og læs svarsteksten i den kaldende kode. Denne agentgrænseflade tilhører node-fetch; Nodes indbyggede fetch bruger en anden transportgrænseflade.

Relaterede artikler