Got вибирає SOCKS-агенти через свої ключі HTTP і HTTPS
Призначте SocksProxyAgent записам агента Got за протоколом призначення та тримайте шлях HTTP/2 окремо.
Об'єкт 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.