superagent 对个别网站发送get请求后得到ECONNRESET错误
我在模拟登录 https://myportal.vtc.edu.hk/wps/portal 时,没有得到响应信息,过了一段时间后得到一个错误返回: code: “ECONNRESET”, errno: “ECONNRESET”, syscall: "read" 我在网上搜了很久,都没有找到具体原因和解决方法,请教各位老司机给指条明路,谢谢!
let url = 'https://myportal.vtc.edu.hk/wps/portal';
superagent
.get(url)
.set({
// Accept:'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
// 'Accept-Encoding':'gzip, deflate, sdch, br',
// 'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
'Cache-Control':'no-cache',
'Content-Type':'application/x-www-form-urlencoded',
// Host:'myportal.vtc.edu.hk',
// refer: 'http://mytag.hk/step1.php',
// 'Upgrade-Insecure-Requests':1,
// 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36'
})
// .redirects(0)
.end(function (err, pres) {
if (err) {
return res.item(err);
}
return res.write(pres.text);
});
3 回复
这应该是 node 的 https 模块的问题,只能等他们修好了
楼主, 这是他们网站用的 tls 的问题。你改变 https 用的安全协议就好。
const https = require('https');
var options = {
hostname: 'myportal.vtc.edu.hk',
port: 443,
path: '/wps/portal',
method: 'GET',
secureProtocol: 'TLSv1_method'
};
var req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.end();
req.on('error', (e) => {
console.error(e);
});
@IchiNiNiIchi 谢谢大神!改变了https的安全协议后就可以了