我使用以下http.get()
调用来调用本地端点:
http.get({
host: 'localhost',
port: 80,
path: '/service/info?id=' + id
}, function(response) {
console.log(response);
response.setEncoding('utf8');
var data = "";
response.on('data', function(chunk) {
data += chunk;
});
response.on('end', function() {
if(data.length > 0) {
try {
var data_object = JSON.parse(data);
} catch(e) {
return;
}
}
});
}).on("error", function (){console.log("GET request error")});
但是,如果我发送一个格式错误的请求,这将触发 HTTP 400,请求综合不正确等,即使response.statusCode
infunction(response)
是 400,它最终会导致catch() response.on('end', function() {}
而不是在 上发出错误事件http.get()
,我想知道为什么会这样以及如何将 HTTP 400 响应作为 node.js 上的错误处理。
如果它到达catch(e)
,它会等待很长时间,直到它向客户端响应任何内容,这也很奇怪。我希望服务器尽快响应客户端达到 400。