mgm娱乐场node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法

今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法。果不其然报错了:SyntaxError:
Unexpected token  in JSON at position 0

发现错误

没办法,只好换一种方法,将接受到的Buffer对象toString,然后打印出来发现是乱码。

最近在用Nodejs发送https请求时候,出现\”Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\”的错误,错误如下:

第一感觉是编码问题,google一下然后看官方文档,总结三种方法:

events.js:72
throw er; // Unhandled \'error\' event
^
Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
at SecurePair. (tls.js:1381:32)
at SecurePair.emit (events.js:92:17)
at SecurePair.maybeInitFinished (tls.js:980:10)
at CleartextStream.read [as _read] (tls.js:472:13)
at CleartextStream.Readable.read (_stream_readable.js:341:10)
at EncryptedStream.write [as _write] (tls.js:369:25)
at doWrite (_stream_writable.js:226:10)
at writeOrBuffer (_stream_writable.js:216:5)
at EncryptedStream.Writable.write (_stream_writable.js:183:11)
at write (_stream_readable.js:602:24)

1、toString 加编码格式作为参数。

错误的原因是:对方数字证书设置不正确,

2、使用iconv-lite 改变编码。

解决办法:mgm娱乐场,
将rejectUnauthorized参数设置成false

3、使用cheerio来加载html。

var https = require(\'https\'); 

var options = { 
 hostname: \'www.magentonotes.com\', 
 port: 443, 
 path: \'/\', 
 method: \'GET\', 
 rejectUnauthorized:false 
}; 

var req = https.request(options, function(res) { 
 console.log(\"statusCode: \", res.statusCode); 
 console.log(\"headers: \", res.headers); 

 res.on(\'data\', function(d) { 
 process.stdout.write(d); 
 }); 
}); 
req.end(); 

req.on(\'error\', function(e) { 
 console.error(e); 
});

奈何上面三种方法都不是我错误的地方,然后看到cnode里面有个人有相似的问题,虽然不尽相同,但是下面回答的人中有人提到了使用gzip压缩,收到后不解压会导致乱码,然后在我的请求头中果然发现了gzip压缩
= =手动捂脸。

参考资料:https://nodejs.org/api/https.html

知道了问题所在,那么解决起来就很方便了。

总结

首先让我们来npm install zlib 一下;

以上就是关于node.js请求HTTPS报错的解决方法,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章