Deixa que node-fetch triï l'agent de proxy després d'una redirecció
Utilitza una funció d'agent per a destinacions HTTP i HTTPS perquè una redirecció pugui triar l'agent de proxy adequat.
La primera URL pot ser HTTPS i la URL redirigida HTTP. Tria l'agent segons la destinació de cada petició, en lloc de mantenir un sol agent lligat a la primera URL.
Per al paquet node-fetch importat en una aplicació ESM, proporciona una funció:
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,
});Substitueix l'URL de l'API i el punt final del proxy. Per a una API pública permesa a través d'un intermediari públic, la llista de proxys HTTP ofereix candidats per a proxyUrl. Els dos agents poden fer servir el mateix oient de proxy HTTP; els seus noms es refereixen a la petició de destinació.
| URL passada al selector | Agent seleccionat |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
Per tant, la funció continua triant l'agent corresponent si una redirecció canvia el protocol de la destinació. proxyUrl continua descrivint l'intermediari, independentment d'aquesta decisió.
Crea els agents una vegada per a la càrrega de treball i reutilitza'ls. Gestiona l'estat retornat i consumeix el cos de la resposta al codi que fa la crida. Aquesta interfície d'agent pertany a node-fetch; el fetch integrat de Node fa servir una interfície de transport diferent.