Node Undici ilə proksi IP istifadə edin
Bir fetch sorğusuna Undici ProxyAgent verin və onun bağlantı hovuzunu başqa Node trafikindən ayırın.
Undici sorğunu dispatcher vasitəsilə yönləndirir. Seçilən HTTP proksi üçün ProxyAgent yaradın və bütün prosesin qlobal dispatcher-ini dəyişmək əvəzinə fetch çağırışına ötürün.
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();
}
Proqramı .mjs faylı kimi saxlayın və ya ES modul layihəsi istifadə edin. Sənədləşdirmə IP-sini HTTP proksi siyahısından HTTP proksi ilə əvəz edin. İdxal qəsdən Undici-nin fetch tətbiqini işlədir, buna görə dispatcher seçimi nümunədəki müştəriyə aiddir.
IP-ni günahlandırmazdan əvvəl Node uyğunluğunu yoxlayın
Undici-nin dəstəklədiyi Node versiyaları paket buraxılışından asılıdır. Nümunə Undici 8.12.3 istifadə edir və Node 22.19.0 və ya yenisini tələb edir. Modul yükləmə və ya mühərrik versiyası xətası sorğu proksiyə çatmazdan əvvəl yaranır. Hər Node-un ən yeni Undici-ni işlətdiyini güman etməyin, quraşdırılmış paketin tələbini yoxlayın.
Bir agent təkrar sorğulara xidmət edə bilər
Qısa proqram sonda dispatcher-i bağlayır. İşləyən tətbiq eyni son nöqtədən bir neçə sorğu göndərirsə, agenti həmin iş yükü üçün saxlayın və iş bitəndə bağlayın. Hər URL üçün agent yaratmaq və bağlamaq faydalı bağlantı təkrar istifadəsinə mane olur.
Qlobal dispatcher yalnız daha geniş dəyişikliyi istəyəndə uyğundur. Onu açıq ötürmək başqa komponentin çıxan sorğularını dəyişmədən proksi IP sınamağı asanlaşdırır.
Cavaba və uğursuzluq mərhələsinə baxın
Fetch hər HTTP xəta statusunu rədd edilmiş Promise saymır. 403 və ya 429 proksinin daşıdığı həqiqi sayt cavabı ola bilər. Bağlantı və ya tunel xətası isə cavab obyekti yaranmadan sorğunu rədd edə bilər. Statusu çağırışın atdığı xətalardan ayrı oxuyun.
Autentifikasiya lazımdırsa, Undici ProxyAgent konstruktor səviyyəsində seçimlər təqdim edir. Proksi avtorizasiya başlığını sayt sorğusunun başlıqlarına əlavə etməyin; agent başqa bağlantı hissəsini idarə edir.