这是我的全部代码
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证书存在的问题
有什么办法可以忽略并访问错误?
答案 0 :(得分:0)
您需要将呼叫移至try catch块中,以处理在呼叫失败的情况下拒绝承诺:
...
try {
const firstAccess = await rp.get(...)
} catch (e) {
console.log(e)
}
...
答案 1 :(得分:-1)
我的问题在重新启动/更改网络连接后得到解决。大多数时候是网络问题。