O objeto agent do Got é indexado pelo protocolo de destino. Por isso, uma ligação SOCKS para um URL HTTPS fica sob https, não sob uma chave nova chamada socks.

Para uma aplicação ESM existente que usa Got e socks-proxy-agent no caminho HTTP/1:

import got from 'got';
import {SocksProxyAgent} from 'socks-proxy-agent';

const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const body = await got('https://www.example.org/', {
  http2: false,
  agent: {
    http: agent,
    https: agent,
  },
  timeout: {request: 20000},
}).text();

A lista de proxies SOCKS5 fornece candidatos para o URL de proxy sem conta do exemplo. O mesmo agente consegue tratar as entradas HTTP e HTTPS mostradas. Estabelece a ligação SOCKS e depois o caminho HTTPS realiza o aperto de mão TLS com o destino.

Neste agente, socks5h deixa a resolução do nome do anfitrião de destino ao proxy SOCKS. socks5 escolhe a resolução local. O nome do anfitrião do próprio proxy continua a ter de ser alcançável a partir do processo Node.

A ranhura de agente HTTP/2 do Got espera outra interface. Não copie este agente para agent.http2 nem assuma que oferece suporte a proxy HTTP/2.

Reutilize o agente configurado para a carga de trabalho e destrua-o quando o proprietário terminar. Alinhe as versões dos pacotes com o runtime Node da aplicação; este exemplo usa a exportação denominada SocksProxyAgent.

Artigos relacionados