Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用NodeJS调用API时获得准确的响应状态代码?_Javascript_Node.js - Fatal编程技术网

Javascript 如何在使用NodeJS调用API时获得准确的响应状态代码?

Javascript 如何在使用NodeJS调用API时获得准确的响应状态代码?,javascript,node.js,Javascript,Node.js,我已经编写了一个服务来调用另一个API服务。但有时,当我调用该服务时,会收到一条错误消息。其中一个错误是“unboundparameters found”,但我得到的状态码是200。因此,对于这种错误输出,我希望200不是正确的状态代码 如何获取此案例的正确状态代码 当前我用于获取状态代码的方法是response.statusCode function apiCall(url, protocol) { function externalApi(url, callback) { try {

我已经编写了一个服务来调用另一个API服务。但有时,当我调用该服务时,会收到一条错误消息。其中一个错误是“unboundparameters found”,但我得到的状态码是200。因此,对于这种错误输出,我希望200不是正确的状态代码

如何获取此案例的正确状态代码

当前我用于获取状态代码的方法是response.statusCode

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响应表示调用成功,您也收到了消息。