Pozwól node-fetch wybrać agenta proxy po przekierowaniu
Użyj funkcji agenta dla celów HTTP i HTTPS, aby przekierowanie mogło wybrać właściwego agenta proxy.
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 selektorowi | Wybrany 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.