详解nodejs http请求相关总结

2020-06-17 05:45:04易采站长站整理


let requestTimer = null;
let req = http.get("http://www.baidu.com", (res) =>{
console.log(res.statusCode);
if(res.statusCode === 200){
clearTimeout(requestTimer);//请求超时之前完成,清除超时定时器
}
});

requestTimer = setTimeout(() => {
req.emit("timeout", {"msg": "请求超时了"});//如果请求超时了则发送timeout事件
}, 1000);

req.on("timeout",(msg) => {//监听timeout事件并终止请求
console.log(`收到timeout事件!`);
req.abort();
console.log(`终止请求`);
});

获取响应数据

get()和request()方法回调函数中的响应对象res中并不携带响应数据,如果要获取响应数据,那么需要通过响应对象去监听data和end事件来获取。


let req = http.get("http://www.baidu.com", (res) =>{
let resStr = "";
res.on("data", (res) => {
resStr += res;
});
res.on("end", () => {
console.log(resStr);
});
});