URL pertama mungkin HTTPS dan URL yang diubah hala mungkin HTTP. Pilih ejen mengikut destinasi setiap permintaan, bukan mengikat satu ejen pada URL pertama.

Untuk pakej node-fetch yang diimport dalam aplikasi ESM, berikan 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,
});

Gantikan URL API dan titik hujung proksi. Untuk API awam yang dibenarkan melalui perantara awam, senarai proksi HTTP menyediakan calon untuk proxyUrl. Kedua-dua ejen boleh menggunakan pendengar proksi HTTP yang sama; nama mereka merujuk kepada permintaan ke destinasi.

URL yang dihantar kepada pemilihEjen yang dipilih
https://…httpsAgent
http://…httpAgent

Jadi fungsi itu masih memilih ejen yang sepadan jika ubah hala menukar protokol destinasi. proxyUrl terus menerangkan perantara, tanpa bergantung pada keputusan itu.

Cipta ejen sekali untuk beban kerja dan gunakannya semula. Kendalikan status yang dikembalikan dan baca badan respons dalam kod pemanggil. Antara muka ejen ini milik node-fetch; fetch terbina dalam Node menggunakan antara muka pengangkutan yang berbeza.

Artikel berkaitan