Javascript 如何在使用NodeJS调用API时获得准确的响应状态代码?
我已经编写了一个服务来调用另一个API服务。但有时,当我调用该服务时,会收到一条错误消息。其中一个错误是“unboundparameters found”,但我得到的状态码是200。因此,对于这种错误输出,我希望200不是正确的状态代码 如何获取此案例的正确状态代码 当前我用于获取状态代码的方法是response.statusCodeJavascript 如何在使用NodeJS调用API时获得准确的响应状态代码?,javascript,node.js,Javascript,Node.js,我已经编写了一个服务来调用另一个API服务。但有时,当我调用该服务时,会收到一条错误消息。其中一个错误是“unboundparameters found”,但我得到的状态码是200。因此,对于这种错误输出,我希望200不是正确的状态代码 如何获取此案例的正确状态代码 当前我用于获取状态代码的方法是response.statusCode function apiCall(url, protocol) { function externalApi(url, callback) { try {
function apiCall(url, protocol) {
function externalApi(url, callback) {
try {
var https = $.require(protocol);
var request = https.request(url, function (response) {
var str = '';
var statusCode = response.statusCode;
var headers = response.headers;
response.on('data', function (data) {
str += data;
});
response.on('end', function () {
console.log("Data is " + str);
console.log("Status Code is " + statusCode);
console.log("Header is " + JSON.stringify(headers));
callback(str, statusCode);
});
});
request.on('error', function (e) {
console.log('Problem with request: ' + e.message);
console.log('Problem with request: ' + e);
});
request.end();
} catch (err) {
console.log("the error is" + err);
var errCode = err.statusCode;
callback(err, 999);
}
}
var status = function (data, statusCode) {
var callStatus = {};
if (statusCode == 200) {
callStatus.retrievedData = data;
callStatus.statusCode = statusCode;
callStatus.MESSAGE = "API successfully called";
} else if (statusCode == 999) {
callStatus.MESSAGE = "API call failed";
callStatus.errorDetails = data;
callStatus.errorDescription = "Error generated from Catch Block";
} else {
callStatus.details = data;
callStatus.statusCode = statusCode;
}
console.log(callStatus);
};
externalApi(url, status);
}
我得到的是错误消息,但状态代码为200。但我需要的是带有确切错误状态代码的错误消息。与第三方API支持人员交谈,他们正在发送200条带有响应文本的消息-“Unbound Parameters found”,可能他们也不知道这种情况。如果我错了,请纠正我。这里的200表示API被成功调用了吗?或者是第三方API没有发送正确的响应状态代码?是的,200 response表示调用成功,您也收到了消息。请与第三方API支持人员联系,告知他们正在发送带有响应文本“Unbound Parameters found”的200,也许他们也没有意识到这种情况。如果我错了,请纠正我。这里的200表示API被成功调用了吗?或者是第三方API没有发送正确的响应状态代码?是的,200响应表示调用成功,您也收到了消息。