在Node js中调用REST API的后操作获取呼叫



我正在通过返回JSON数据的REST API执行后期操作。我正在尝试使用节点JS进行电话,但我没有得到任何响应。有人可以帮助我找到这里的问题吗?

'use strict';
const request = require('request');
const snapOpts = {
    url: 'https://triageqa.paypalcorp.com:8443/v1/triage/fetchers',
    method: 'POST',
    strictSSL: false
};
const snapFilter = {
    "reporter": "sdmariappan",
    "fetchers_list": {
        "change_ticket_fetcher_request" :         {
            "start_time": "2018-01-01T00:00:00.000Z",
            "end_time": "2018-02-07T00:00:00.000Z",
            "pools" : [
                "xxx"
            ]
        }
    }
};
let obj;
module.exports = function (router) {
    router.get('/snap', function (req, res) {
        callsnap(function (data) {
            res.send(data)
        });
    });
};
function callsnap(cb) {
    requestSnap("POST", snapFilter)
        .then(data => {
            obj = JSON.parse(JSON.stringify(data,null,2));
            cb(obj);
        })
        .catch(err => {
            console.error(err);
        });
}
function requestSnap(method, queryData) {
    snapOpts.method = method;
    snapOpts.qs = queryData;
    return new Promise((resolve, reject) => {
        let responseData = '';
        request(snapOpts)
            .on('error', err => reject(err))
            .on('data', chunk => responseData += chunk)
            .on('end', () => resolve(responseData));
    });
}

curl命令调用REST API:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Bearer EEwJ6tF9x5' -d ' {
    "reporter": "sdmariappan",
    "fetchers_list": {
         "change_ticket_fetcher_request" :         {
             "start_time": "2018-01-01T00:00:00.000Z",
            "end_time": "2018-02-07T00:00:00.000Z",
            "pools" : [ 
                "xxx", 
            ]
         }
   }
}
} ' 'https://triageqa.paypalcorp.com:8443/v1/triage/fetchers'

我做了一些修改。

module.exports = function (router) {
    router.get('/snap', function (req, res) {
        requestSnap("POST", snapFilter)
            .then(data => {
                res.json(data);
            })
            .catch(err => {
                res.status(400).json(data);
            });
    });
};
function requestSnap(method, queryData) {
    snapOpts.method = method;
    snapOpts.body = queryData;
    return new Promise((resolve, reject) => {
        request(snapOpts, function (err, res, body) {
            if (err) {
                console.error('error posting json: ', err)
                reject(err);
            }
            console.log('body: ', body);
            resolve(body);
        })
    });
}

非常感谢Rahul。

在标题中添加内容类型后,我可以看到响应。这是我的错误,因为没有正确看tat :(

const snapOpts = {
    url: 'https://triageqa.paypalcorp.com:8443/v1/triage/fetchers',
    method: 'POST',
    json: true,
    rejectUnauthorized: false,
    headers: {
        'Content-Type': 'application/json'
    }
};

最新更新