Не может быть чтоб никто не знал ведь делают боты на такое если уж тут не дают решение то где ещё..
Не проходит http-запрос на Google внутри nodejs в BAS. В чем причина?
-
Тестирую отправление http-запросов через nodejs в BAS .
Как будто бы кубик nodejs не может выйти в интернет, что оч странно! (см лог)
Вывод в консоль завершается , И соответственно работа nodejs-кубика останавливается на этой последней строке лога (полый лог смотрите ниже):[Событие] "socket": Сокет назначен запросу.Полный лог работы nodejs кубика:
[145441036] [12:46:17] Поток №1 : [Шаг 1] Скрипт запущен. Подключаем модуль https. [145441036] [12:46:17] Поток №1 : [Шаг 2] Создан объект с опциями для запроса. [145441036] [12:46:17] Поток №1 : [Шаг 3] Объект запроса успешно создан. [145441036] [12:46:17] Поток №1 : [Шаг 4] Добавляем обработчики событий к запросу... [145441036] [12:46:17] Поток №1 : [Шаг 5] Обработчики событий добавлены. [145441036] [12:46:17] Поток №1 : ... ... [145441036] [12:46:17] Поток №1 : [Шаг 6] Команда req.end() вызвана. Скрипт теперь ожидает ответа от сети... [145441036] [12:46:17] Поток №1 : [Событие] "socket": Сокет назначен запросу.nodejs код:
// === ФУНДАМЕНТАЛЬНЫЙ ТЕСТ СЕТИ 2.0 (Node JS / BAS) === const https = require('https'); async function main() { console.log('[Шаг 1] Скрипт запущен. Подключаем модуль https.'); const options = { hostname: 'www.google.com', port: 443, path: '/', method: 'GET', headers: { 'User-Agent': 'BAS‑Connectivity‑Test/1.0' }, timeout: 20_000 // 20 секунд }; console.log('[Шаг 2] Создан объект с опциями для запроса.'); // ------- КРИТИЧЕСКО: BAS должен подождать этот Promise ------- await new Promise((resolve, reject) => { let req; try { req = https.request(options, (res) => { console.log('[SUCCESS] Получен ответ от сервера!'); console.log('Статус ответа: ' + res.statusCode); res.on('data', (chunk) => console.log(`[data] Получено ${chunk.length} байт.`) ); res.on('end', () => { console.log('[end] Ответ полностью получен. Тест УСПЕШЕН.'); resolve(); }); }); console.log('[Шаг 3] Объект запроса успешно создан.'); } catch (e) { console.error('[FATAL] Не удалось создать запрос: ' + e.message); reject(e); return; } // ----- Диагностические события запроса ----- req.on('socket', (socket) => { console.log('[socket] Сокет назначен.'); socket.on('lookup', (err, address, family, host) => { if (err) { console.error(`[lookup] DNS‑ошибка для ${host}: ${err.message}`); } else { console.log(`[lookup] ${host} → ${address} (IPv${family})`); } }); socket.on('connect', () => console.log('[connect] TCP‑соединение установлено.')); socket.on('secureConnect', () => console.log('[secureConnect] TLS‑рукопожатие завершено.')); socket.on('error', (e) => console.error('[socket‑error] ' + e.message)); }); req.on('response', () => console.log('[response] Сервер начал отправку данных.')); req.on('timeout', () => { console.error('[timeout] 20 секунд истекли — уничтожаем запрос.'); req.destroy(new Error('TIMEOUT')); }); req.on('error', (e) => { console.error('[error] ' + e.message); reject(e); }); req.on('close', () => console.log('[close] Соединение закрыто.'));