Deixa que node-fetch escolla o axente de proxy tras unha redirección
Usa unha función de axente para destinos HTTP e HTTPS, de xeito que unha redirección poida escoller o axente de proxy axeitado.
A primeira URL pode ser HTTPS e a URL redirixida HTTP. Escolle o axente segundo o destino de cada solicitude, en lugar de manter un único axente ligado á primeira URL.
Para o paquete node-fetch importado nunha aplicación ESM, fornece unha función:
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,
});Substitúe a URL da API e o punto de conexión do proxy. Para unha API pública permitida a través dun intermediario público, a lista de proxies HTTP ofrece candidatos para proxyUrl. Os dous axentes poden usar o mesmo oínte de proxy HTTP; os seus nomes refírense á solicitude de destino.
| URL pasada ao selector | Axente seleccionado |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Por tanto, a función segue seleccionando o axente correspondente se unha redirección cambia o protocolo do destino. proxyUrl segue describindo o intermediario, con independencia desa decisión.
Crea os axentes unha vez para a carga de traballo e reutilízaos. Xestiona o estado devolto e consome o corpo da resposta no código que chama. Esta interface de axente pertence a node-fetch; o fetch integrado de Node usa unha interface de transporte distinta.