ejs端点的Nodejs请求问题(客户端网络套接字已断开连接)

时间:2018-12-20 23:53:29

标签: javascript node.js

这是我的全部代码

const rp = require('request-promise');

(async () => {
  const headers = {
    Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3',
    'Cache-Control': 'no-cache',
    Connection: 'keep-alive',
    Host: 'www.receita.fazenda.gov.br',
    Pragma: 'no-cache',
    'Upgrade-Insecure-Requests': 1,
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0',
  };

  const jar = rp.jar();

  try {
    const firstAccess = await rp.get('https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATCTA/CPF/ConsultaSituacao/ConsultaPublica.asp', {
      headers,
      gzip: true,
      simple: false,
      strictSSL: false,
      jar,
    });
    console.log(firstAccess);
  } catch (e) {
    console.log(e);
  }
})();

运行代码时,我收到此错误:

  

UnhandledPromiseRejectionWarning:RequestError:错误:客户端网络   建立安全TLS连接之前,套接字已断开连接

该网址可在浏览器中使用,但我无法通过nodeJS访问,显然这是https证书存在的问题

有什么办法可以忽略并访问错误?

2 个答案:

答案 0 :(得分:0)

您需要将呼叫移至try catch块中,以处理在呼叫失败的情况下拒绝承诺:

...
try {
  const firstAccess = await rp.get(...)
} catch (e) {
  console.log(e)
}
...

答案 1 :(得分:-1)

我的问题在重新启动/更改网络连接后得到解决。大多数时候是网络问题。