Use un axente SOCKS co cliente HTTPS de Node
Conecte socks-proxy-agent a unha solicitude HTTPS do núcleo de Node e conserve a distinción entre un axente de Node e un despachador de fetch.
Un axente con capacidade SOCKS pode establecer a conexión de destino para o cliente HTTPS do núcleo de Node. Con socks-proxy-agent dispoñible na aplicación:
const https = require('node:https');
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const request = https.get('https://www.example.com/', {
agent,
signal: AbortSignal.timeout(15000),
}, (response) => {
console.log(response.statusCode);
response.on('error', console.error);
response.resume();
});
request.on('error', console.error);
Substitúa o extremo de exemplo por un candidato non autenticado da lista de proxies SOCKS5 para esta solicitude HTTPS pública. A devolución de chamada baleira a resposta despois de imprimir o seu estado; consuma o corpo alí se a aplicación o necesita. Reutilice o axente para as súas operacións asignadas e logo destrúao cando se retire esa política de cliente e o seu traballo remate.
Escolla onde se resolve o nome de destino
No manexo de URL de socks-proxy-agent, socks5h deixa a resolución do nome de host de destino ao camiño do proxy; socks5 resólveo localmente. Isto importa cando o nome só está dispoñible na rede do proxy.
A URL HTTPS conserva a identidade do sitio web. O axente realiza a negociación SOCKS antes de que Node inicie TLS cara a ese sitio.
Para un servizo con nome de usuario e contrasinal, coloque as credenciais na URL do proxy usando codificación de compoñentes URI para caracteres reservados. Manteña a URL completa fóra dos rexistros. As cabeceiras Authorization de destino pertencen á conta do sitio web.
Este axente traballa coas API de solicitude HTTP/HTTPS do núcleo de Node. fetch de Node usa unha interface de dispatcher, así que configure por separado a integración SOCKS admitida dese cliente.