Undici menghalakan permintaan melalui dispatcher. Cipta ProxyAgent untuk proksi HTTP pilihan dan berikannya pada panggilan fetch, bukannya menukar dispatcher global seluruh proses.

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();
}

Simpan program sebagai fail .mjs atau gunakan projek modul ES. Gantikan IP dokumentasi dengan proksi HTTP daripada senarai proksi HTTP. Import sengaja menggunakan pelaksanaan fetch Undici, maka pilihan dispatcher milik klien dalam contoh ini.

Semak keserasian Node sebelum menyalahkan IP

Versi Node yang disokong Undici bergantung pada keluaran pakej. Contoh ini menggunakan Undici 8.12.3 yang memerlukan Node 22.19.0 atau lebih baharu. Ralat pemuatan modul atau versi enjin berlaku sebelum permintaan mencapai proksi. Semak keperluan pakej terpasang; jangan anggap setiap Node menjalankan Undici terkini.

Satu agent boleh melayan permintaan berulang

Program ringkas menutup dispatcher selepas selesai. Jika aplikasi aktif menghantar beberapa permintaan melalui titik sama, kekalkan agent untuk beban itu dan tutup apabila kerja tamat. Mencipta dan menutup agent bagi setiap URL menghalang penggunaan semula sambungan yang berguna.

Dispatcher global sesuai hanya apabila perubahan lebih luas memang dikehendaki. Memberikannya secara jelas memudahkan ujian IP proksi tanpa mengubah permintaan keluar komponen lain.

Lihat respons dan peringkat kegagalan

fetch tidak menganggap setiap status ralat HTTP sebagai Promise ditolak. 403 atau 429 boleh menjadi respons sebenar laman yang dibawa proksi. Ralat sambungan atau terowong pula boleh menolak permintaan sebelum objek respons wujud. Baca status berasingan daripada ralat yang dilontarkan panggilan.

Jika pengesahan diperlukan, ProxyAgent Undici menyediakan pilihan pada pembina. Jangan tambah pengepala kebenaran proksi ke pengepala permintaan laman; agent mengendalikan hop sambungan berbeza.

Artikel berkaitan