Folosiți un agent SOCKS cu clientul HTTPS din Node
Atașați socks-proxy-agent la o cerere HTTPS din nucleul Node și păstrați distincția dintre un agent Node și un dispatcher fetch.
Un agent compatibil SOCKS poate stabili conexiunea de destinație pentru clientul HTTPS din nucleul Node. Când socks-proxy-agent este disponibil în aplicație:
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);
Înlocuiți punctul final din exemplu cu un candidat neautentificat din lista de proxy SOCKS5 pentru această cerere HTTPS publică. Callback-ul golește răspunsul după ce afișează starea; consumați corpul acolo dacă aplicația are nevoie de el. Reutilizați agentul pentru operațiunile atribuite, apoi distrugeți-l când acea politică de client este retrasă și munca lui s-a încheiat.
Alegeți unde este rezolvat numele destinației
În manipularea URL-urilor de către socks-proxy-agent, socks5h lasă rezolvarea numelui de gazdă al destinației în seama căii proxy; socks5 îl rezolvă local. Acest lucru contează când numele este disponibil doar în rețeaua proxy-ului.
URL-ul HTTPS păstrează identitatea site-ului. Agentul efectuează negocierea SOCKS înainte ca Node să înceapă TLS către acel site.
Pentru un serviciu cu nume de utilizator/parolă, puneți acreditările în URL-ul proxy folosind codificarea componentelor URI pentru caracterele rezervate. Țineți URL-ul complet în afara jurnalelor. Antetele Authorization ale destinației aparțin contului site-ului.
Acest agent funcționează cu API-urile de cerere HTTP/HTTPS din nucleul Node. fetch din Node folosește o interfață de dispatcher, așa că configurați separat integrarea SOCKS acceptată a acelui client.