Я получаю странное поведение при использовании библиотеки запросов в узле при обращении к определенным сайтам.
для быстрого контекста (который не имеет ничего общего с технической проблемой): моя цель в этом проекте состояла в том, чтобы прочитатьДивидендная история NASDAQ по ряду акций.Истории могут быть довольно длинными, и я, конечно, не собираюсь сидеть здесь и читать 100 из них вручную.Пример одной из этих страниц: https://www.nasdaq.com/symbol/msft/dividend-history
По техническим проблемам ... Я использую узел v11.10.0 с модулем запроса для вызова страницы - самая простая вещь.Я использовал эту библиотеку для выполнения других подобных задач, и у меня никогда не было проблем.Вот мой очень простой скрипт:
var request = require("request");
var options = { method: 'GET',
url: 'https://www.nasdaq.com/symbol/msft/dividend-history',
headers:
{ 'Postman-Token': 'e4e9749e-d73e-44b9-994f-9d0522654fb0',
'cache-control': 'no-cache' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
Сохраните файл как index.js и запустите
node index.js
, и это должно получить страницу ... за исключением того, что я получаю ошибку,Ошибка:
Error: Error: read ECONNRESET
at Request._callback (<localpath>\index.js:8:24)
at self.callback (<localpath>\node_modules\request\request.js:185:22)
at Request.emit (events.js:197:13)
at Request.onRequestError (<localpath>\node_modules\request\request.js:881:8)
at ClientRequest.emit (events.js:197:13)
at TLSSocket.socketErrorListener (_http_client.js:397:9)
at TLSSocket.emit (events.js:197:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at processTicksAndRejections (internal/process/next_tick.js:76:17)
Итак, подумав, что у меня может быть что-то не так, я попробовал тот же запрос в почтальоне для проверки.Но Почтальон без труда выполнил запрос get по тому же URL-адресу, указанному выше.Я подумал, что, возможно, возникла проблема с сертификатом в https, но я включил и выключил проверку сертификата в почтальоне, и она работала независимо от настроек.
Дополнительное примечание - мой «очень простой сценарий» - это то, что я извлек из вкладки «Код» Postman для блока кода Node / Request, поэтому я действительно озадачен тем, что Postman работает, а собственный блок кода Postman - нет.1022 *
На данный момент меня даже не волнует то, что я пытался сделать изначально ... Я просто пытаюсь выяснить, почему я получаю различное поведение на двух, казалось бы, эквивалентных способах сделать запрос GET.
Кто-нибудь знает, что у почтальона в этом случае отсутствует этот узел?