Gumamit ng proxy IP sa Undici ng Node
Ikabit ang Undici ProxyAgent sa isang fetch request at ihiwalay ang connection pool nito sa ibang Node traffic.
Dinadaan ng Undici ang request sa isang dispatcher. Gumawa ng ProxyAgent para sa napiling HTTP proxy at ipasa ito sa fetch call sa halip na baguhin ang global dispatcher ng buong process.
npm install [email protected]
import { fetch, ProxyAgent } from 'undici';
const dispatcher = new ProxyAgent('http://203.0.113.10:8080');
try {
const response = await fetch('https://example.com/', {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
console.log(await response.text());
} finally {
await dispatcher.close();
}
I-save ang programa bilang .mjs file o gumamit ng ES-module project. Palitan ang IP na pangdokumentasyon ng HTTP proxy mula sa listahan ng mga HTTP proxy. Sadyang gumagamit ang import ng fetch implementation ng Undici, kaya ang dispatcher option ay para sa client sa halimbawa.
Suriin muna ang Node compatibility bago sisihin ang IP
Nakadepende sa package release ang mga Node version na suportado ng Undici. Gumagamit ang halimbawa ng Undici 8.12.3 na nangangailangan ng Node 22.19.0 o mas bago. Nauuna ang module-loading o engine-version error bago makarating sa proxy ang request. Suriin ang pangangailangan ng naka-install na package sa halip na ipalagay na lahat ng Node ay makapagpapatakbo ng pinakabagong Undici.
Kayang pagsilbihan ng isang agent ang paulit-ulit na request
Isinasara ng maikling programa ang dispatcher sa dulo. Kung nagpapadala ang tumatakbong application ng ilang request sa parehong endpoint, panatilihin ang agent para sa gawaing iyon at isara kapag tapos na. Hinahadlangan ng paggawa at pagsasara ng agent sa bawat URL ang kapaki-pakinabang na paggamit muli ng koneksyon.
Angkop lang ang global dispatcher kung balak ang mas malawak na pagbabago. Mas madaling subukan ang proxy IP sa tahasang pagpasa nito nang hindi binabago ang palabas na request ng ibang bahagi.
Tingnan ang tugon at yugto ng pagkabigo
Hindi itinuturing ng fetch na rejected Promise ang lahat ng HTTP error status. Maaaring totoong tugon ng website na dumaan sa proxy ang 403 o 429. Maaaring tanggihan ng koneksyon o tunnel error ang request bago magkaroon ng response object. Basahin ang status nang hiwalay sa error na inihahagis ng call.
Kung kailangan ng authentication, may constructor-level options ang ProxyAgent ng Undici. Huwag magdagdag ng proxy authorization header sa request headers ng website; ibang bahagi ng koneksyon ang pinamamahalaan ng agent.