Pierwszy URL może być HTTPS, a przekierowany URL HTTP. Wybieraj agenta według celu każdego żądania, zamiast wiązać jednego agenta z pierwszym URL-em.

Dla zaimportowanego pakietu node-fetch w aplikacji ESM podaj funkcję:

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

Zastąp URL interfejsu API i punkt końcowy proxy. Dla publicznego API dozwolonego przez publicznego pośrednika lista proxy HTTP dostarcza kandydatów do proxyUrl. Oba agenty mogą korzystać z tego samego nasłuchu proxy HTTP; ich nazwy odnoszą się do żądania do celu.

URL przekazany selektorowiWybrany agent
https://…httpsAgent
http://…httpAgent

Funkcja nadal więc wybiera odpowiedniego agenta, jeśli przekierowanie zmieni protokół celu. proxyUrl nadal opisuje pośrednika, niezależnie od tej decyzji.

Utwórz agenty raz dla danego obciążenia i używaj ich ponownie. Obsłuż zwrócony status i odczytaj treść odpowiedzi w kodzie wywołującym. Ten interfejs agenta należy do node-fetch; wbudowany fetch Node'a używa innego interfejsu transportu.

Powiązane artykuły