【发布时间】:2017-04-05 10:02:43
【问题描述】:
如果节点请求流返回 200 范围以外的任何 statusCode,我希望记录错误并拒绝请求,但我想从请求中获取响应(如果可用)即使它失败了,因为它有时包含有关失败原因的有用信息.所以我的问题是,如果我在结束事件中检查 statusCode,是否有可能永远不会调用它并且程序会挂起?有没有更好的方法来获取响应正文并拒绝 statusCode?p>
const request = http.get(url, (response) => {
const body = [];
response.on('data', (chunk) => body.push(chunk));
response.on('end', () => {
// handle http errors
if (response.statusCode < 200 || response.statusCode > 299) {
reject(new ErrorClass(response.statusCode, body.join('')));
} else {
resolve(body.join(''))
}
});
});
【问题讨论】:
标签: node.js