Biarkan node-fetch memilih agen proxy setelah pengalihan
Gunakan fungsi agen untuk tujuan HTTP dan HTTPS agar pengalihan dapat memilih agen proxy yang sesuai.
URL pertama bisa HTTPS dan URL hasil pengalihan HTTP. Pilih agen sesuai tujuan setiap permintaan, bukan mengikat satu agen ke URL pertama.
Untuk paket node-fetch yang diimpor dalam aplikasi ESM, sediakan sebuah fungsi:
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,
});Ganti URL API dan titik akhir proxy. Untuk API publik yang diizinkan melalui perantara publik, daftar proxy HTTP menyediakan kandidat untuk proxyUrl. Kedua agen dapat memakai listener proxy HTTP yang sama; namanya merujuk pada permintaan ke tujuan.
| URL yang diteruskan ke pemilih | Agen yang dipilih |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Jadi fungsi tetap memilih agen yang cocok jika pengalihan mengubah protokol tujuan. proxyUrl tetap menjelaskan perantara, terlepas dari keputusan itu.
Buat agen sekali untuk beban kerja dan pakai ulang. Tangani status yang dikembalikan dan baca badan respons di kode pemanggil. Antarmuka agen ini milik node-fetch; fetch bawaan Node memakai antarmuka transport yang berbeda.