GET-запрос с использованием узла / запроса, выдающего неожиданное «чтение ECONNRESET» - PullRequest
0 голосов
/ 03 марта 2019

Я получаю странное поведение при использовании библиотеки запросов в узле при обращении к определенным сайтам.

для быстрого контекста (который не имеет ничего общего с технической проблемой): моя цель в этом проекте состояла в том, чтобы прочитатьДивидендная история 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, но я включил и выключил проверку сертификата в почтальоне, и она работала независимо от настроек.

works in postman, ta-da!

Дополнительное примечание - мой «очень простой сценарий» - это то, что я извлек из вкладки «Код» Postman для блока кода Node / Request, поэтому я действительно озадачен тем, что Postman работает, а собственный блок кода Postman - нет.1022 *

На данный момент меня даже не волнует то, что я пытался сделать изначально ... Я просто пытаюсь выяснить, почему я получаю различное поведение на двух, казалось бы, эквивалентных способах сделать запрос GET.

Кто-нибудь знает, что у почтальона в этом случае отсутствует этот узел?

...