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 selectorAgent 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.

Articles relacionats