Об'єкт agent у Got індексується за протоколом призначення. Тому SOCKS-з'єднання для URL HTTPS належить під https, а не під новий ключ із назвою socks.

Для наявного ESM-застосунку, що використовує Got і socks-proxy-agent на шляху 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();

Список SOCKS5-проксі дає кандидатів для проксі-URL без облікового запису з прикладу. Той самий агент обслуговує показані записи HTTP і HTTPS. Він встановлює SOCKS-з'єднання, після чого шлях HTTPS виконує рукостискання TLS із призначенням.

У цьому агенті socks5h залишає розв'язання імені хоста призначення SOCKS-проксі. socks5 натомість вибирає локальне розв'язання. Ім'я хоста самого проксі все одно має бути доступним із процесу Node.

Слот агента HTTP/2 у Got очікує інший інтерфейс. Не копіюйте цей агент у agent.http2 і не вважайте, що він забезпечує підтримку HTTP/2-проксі.

Повторно використовуйте налаштований агент для навантаження та знищуйте його, коли власник завершує роботу. Узгодьте версії пакетів із середовищем Node застосунку; цей приклад використовує іменований експорт SocksProxyAgent.

Схожі статті