NodeJs 获取网页内容 http.get 默认请求超时过长了,程序要卡死好一会。
根据网上资料现改造了一个带超时设置的获取网页内容方法。
主要方法使用 setTimeout 来超时,
代码如下:
// 获取指定网页,返回HTML function getUrlHtml(url, fn_success, fn_error, timeout) { timeout = timeout || 2000; var timeEvent; var req = http.get(url, function(res){ var html = ''; res.setEncoding('utf-8'); res.on('data' , function(d){ window.clearTimeout(timeEvent); html += d; }).on('end', function(){ window.clearTimeout(timeEvent); //var dom = jq(html); return fn_success(html); }).on('error', function(err){ window.clearTimeout(timeEvent); fn_error(err); }); }).on('error', function(err){ window.clearTimeout(timeEvent); fn_error(err); }); timeEvent = window.setTimeout(function(){ fn_error('time out!'); req.abort(); }, timeout); } // 使用 getUrlHtml('http://www.xxx.com', function(html){ console.log(html); }, function(err){ console.log(err); }, 1000);