嘿伙计们,我第一次尝试使用 nodejs 进行多个 https 连接时有点卡住了。以下代码无法启动,并且我收到一条错误消息,内容为:
Hint: hit control+c anytime to enter REPL.
events.js:174
throw er; // Unhandled 'error' event
^
Error: socket hang up
at createHangUpError (_http_client.js:323:15)
at TLSSocket.socketOnEnd (_http_client.js:426:23)
at TLSSocket.emit (events.js:203:15)
at TLSSocket.EventEmitter.emit (domain.js:448:20)
at endReadableNT (_stream_readable.js:1143:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
at TLSSocket.socketOnEnd (_http_client.js:426:9)
at TLSSocket.emit (events.js:203:15)
[... lines matching original stack trace ...]
at process._tickCallback (internal/process/next_tick.js:63:19)
(To exit, press ^C again or type .exit)
这是我的代码:
const https = require('https');
function RandomIp(length) {
var result = '';
var characters = '123456789';
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
var userAgent = 'iPhone / Safari 12.1.1 [Mobile]: Mozilla/5.0 (iPhone; CPU OS 10_15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15';
var flag = false;
var ip = RandomIp(3) +"."+ RandomIp(3) +"."+ RandomIp(3) +"."+ RandomIp(3);
const options = {
hostname: 'sh0rt.me',
port: 443,
path: '/r/XX6fYM',
method: 'GET',
headers: {
'X-Forwarded-For': ip,
'User-Agent': userAgent
}
};
const req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
console.log("first connection successfull!")
console.log(flag);
flag=!flag;
console.log(flag);
if (flag == true){
console.log("Ready for second connection");
const optionsd = {
hostname: 'sh0rt.me',
port: 443,
path: '/r/XX6fYM',
method: 'GET',
headers: {
'X-Forwarded-For': ip,
'User-Agent': userAgent,
'Cookies' : 'cookies lol'
}
};
const reqd = https.request(optionsd, (resd) => {
console.log('statusCode:', resd.statusCode);
console.log('headers:', resd.headers);
resd.on('data', (d) => {
//process.stdout.write(d);
console.log("1. Anfrage erfolgreich!")
console.log(flag);
console.log(options);
})
});
};
req.on('error', (e) => {
console.error(e);
});
});
});
我知道这个问题很长,但如果有人能告诉我我做错了什么,我会很高兴。
谢谢各位^^