Lëri node-fetch të zgjedhë agjentin e proxy-t pas një ridrejtimi
Përdor një funksion agjenti për destinacionet HTTP dhe HTTPS, që një ridrejtim të mund të zgjedhë agjentin e duhur të proxy-t.
URL-ja e parë mund të jetë HTTPS dhe URL-ja e ridrejtuar HTTP. Zgjidh agjentin sipas destinacionit të çdo kërkese, në vend që të lidhësh një agjent të vetëm me URL-në e parë.
Për paketën node-fetch të importuar në një aplikacion ESM, jep një funksion:
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,
});Zëvendëso URL-në e API-t dhe pikën fundore të proxy-t. Për një API publik të lejuar përmes një ndërmjetësi publik, lista e proxy-ve HTTP ofron kandidatë për proxyUrl. Dy agjentët mund të përdorin të njëjtin dëgjues proxy HTTP; emrat e tyre i referohen kërkesës drejt destinacionit.
| URL-ja që i kalon përzgjedhësit | Agjenti i zgjedhur |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Prandaj funksioni vazhdon të zgjedhë agjentin përkatës nëse një ridrejtim ndryshon protokollin e destinacionit. proxyUrl vazhdon të përshkruajë ndërmjetësin, pavarësisht nga ky vendim.
Krijo agjentët një herë për ngarkesën dhe ripërdori ata. Trajto statusin e kthyer dhe lexo trupin e përgjigjes në kodin që thërret. Kjo ndërfaqe agjenti i përket node-fetch; fetch-i i integruar i Node përdor një ndërfaqe tjetër transporti.