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

uinbv5nw  于 2023-03-11  发布在  Java
关注(0)|答案(2)|浏览(147)

这是我的全部代码

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);
  }
})();

当我运行我的代码时,我收到这个错误:
未处理承诺拒绝警告:请求错误:错误:在建立安全TLS连接之前,客户端网络套接字已断开连接
该网址在浏览器中工作,但我无法通过nodeJS访问,显然是https证书的一些问题
是否有办法忽略错误并访问它?

vqlkdk9b

vqlkdk9b1#

您需要将调用移到try catch块中,以便在调用失败时处理拒绝承诺的情况:

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

z31licg02#

我的问题在重新启动/更改网络连接后解决了。问题大部分时间都与网络有关。

相关问题