Node’un Undici’siyle proxy IP kullanın
Tek fetch isteğine Undici ProxyAgent bağlayın ve bağlantı havuzunu ilgisiz Node trafiğinden ayırın.
Undici isteği bir dispatcher üzerinden yönlendirir. Seçilen HTTP proxy için ProxyAgent oluşturup bütün sürecin genel dispatcher’ını değiştirmek yerine fetch çağrısına verin.
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();
}
Programı .mjs dosyası olarak kaydedin veya ES modülü projesi kullanın. Belgelendirme IP’sini HTTP proxy listesinden bir HTTP proxy ile değiştirin. İçe aktarma bilerek Undici’nin fetch uygulamasını kullanır; dispatcher seçeneği örnekteki istemciye aittir.
IP’yi suçlamadan önce Node uyumluluğunu kontrol edin
Undici’nin desteklediği Node sürümleri paket sürümüne bağlıdır. Örnek Undici 8.12.3 kullanır; Node 22.19.0 veya yenisini gerektirir. Modül yükleme veya motor sürümü hatası istek proxy’ye ulaşmadan oluşur. Her Node’un en yeni Undici’yi çalıştıracağını varsaymak yerine kurulu paketin gereksinimini kontrol edin.
Bir agent yinelenen isteklere hizmet edebilir
Kısa program sonunda dispatcher’ını kapatır. Çalışan uygulama aynı uç noktadan birkaç istek gönderiyorsa agent’ı bu iş yükü için koruyun ve iş bitince kapatın. Her URL için agent oluşturup kapatmak yararlı bağlantı yeniden kullanımını engeller.
Genel dispatcher yalnız daha geniş değişikliği amaçladığınızda uygundur. Açıkça vermek, başka bileşenin giden isteklerini değiştirmeden proxy IP sınamayı kolaylaştırır.
Yanıta ve başarısızlık aşamasına bakın
fetch her HTTP hata durumunu reddedilmiş Promise saymaz. 403 veya 429 proxy üzerinden taşınan gerçek site yanıtı olabilir. Bağlantı veya tünel hatası ise yanıt nesnesi oluşmadan isteği reddedebilir. Durumu çağrının fırlattığı hatalardan ayrı okuyun.
Kimlik doğrulama gerekiyorsa Undici ProxyAgent kurucu düzeyinde seçenekler sunar. Proxy yetkilendirme başlığını sitenin istek başlıklarına eklemeyin; agent farklı bir bağlantı ayağını yönetir.