这是我的全部代码
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证书存在一些问题
有没有办法忽略错误并访问它?
您需要将调用移动到 try catch 块内,以便在调用失败时处理 promise 拒绝:
...
try {
const firstAccess = await rp.get(...)
} catch (e) {
console.log(e)
}
...
重新启动/更改网络连接后,我的问题已解决。大多数时候,问题出在网络上。