Hayaang pumili ang node-fetch ng proxy agent pagkatapos ng redirect
Gumamit ng agent function para sa mga destinasyong HTTP at HTTPS upang makapili ang redirect ng tamang proxy agent.
Ang unang URL ay maaaring HTTPS at ang na-redirect na URL ay HTTP. Piliin ang agent ayon sa destinasyon ng bawat kahilingan, sa halip na ikabit ang isang agent sa unang URL.
Para sa na-import na node-fetch package sa isang ESM application, magbigay ng function:
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,
});Palitan ang API URL at ang proxy endpoint. Para sa pampublikong API na pinapayagan sa pamamagitan ng pampublikong tagapamagitan, ang listahan ng HTTP proxy ay nagbibigay ng mga kandidato para sa proxyUrl. Maaaring gamitin ng dalawang agent ang parehong HTTP proxy listener; ang kanilang mga pangalan ay tumutukoy sa kahilingan patungo sa destinasyon.
| URL na ipinasa sa tagapili | Napiling agent |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Kaya pinipili pa rin ng function ang tugmang agent kung babaguhin ng redirect ang protocol ng destinasyon. Patuloy na inilalarawan ng proxyUrl ang tagapamagitan, anuman ang desisyong iyon.
Gawin ang mga agent nang isang beses para sa workload at gamitin muli. Pangasiwaan ang ibinalik na status at basahin ang katawan ng tugon sa tumatawag na code. Ang agent interface na ito ay pag-aari ng node-fetch; ang built-in na fetch ng Node ay gumagamit ng ibang transport interface.