Нека node-fetch го избере прокси агентот по пренасочувањето
Користете функција за агент за HTTP и HTTPS одредишта за да може пренасочувањето да го избере соодветниот прокси агент.
Првиот URL може да биде HTTPS, а пренасочениот URL HTTP. Изберете го агентот според одредиштето на секое барање, наместо да врзете еден агент за првиот URL.
За увезениот пакет node-fetch во ESM апликација, доставете функција:
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,
});Заменете го URL-то на API и крајната точка на проксито. За јавно API дозволено преку јавен посредник, списокот со HTTP прокси нуди кандидати за proxyUrl. Двата агенти можат да го користат истиот слушател на HTTP прокси; нивните имиња се однесуваат на барањето кон одредиштето.
| URL проследен до избирачот | Избран агент |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Затоа функцијата сè уште го избира соодветниот агент ако пренасочувањето го смени протоколот на одредиштето. proxyUrl продолжува да го опишува посредникот, независно од таа одлука.
Создајте ги агентите еднаш за работното оптоварување и користете ги повторно. Обработете го вратениот статус и прочитајте го телото на одговорот во кодот што повикува. Овој интерфејс за агенти и припаѓа на node-fetch; вградениот fetch во Node користи друг транспортен интерфејс.