获取 200 作为状态代码,但 api 的响应为空白

Getting 200 as status code but blank response from api

我试图使用 nodejs 请求从一个 api 调用的关键字请求数据,他们的文档没有关于 nodejs 的任何内容,但他们确实有 bash 所以我所做的是我转换了他们的bash 到 nodejs 请求。有关更多上下文,这是他们的文档: https://api.keywordseverywhere.com/docs/#/keywords/get_keywords_data 我的代码似乎可以工作,因为它 return 的状态代码是 200,但问题是它 return 是一个空白数据:

{
    "data": [],
    "credits": 93735,
    "time": 0
}

如果请求成功,它应该return像这样:

{
    "data": [
        {
            "vol": 390,
            "cpc": {
                "currency": "$",
                "value": "5.51"
            },
            "keyword": "keywords tool",
            "competition": 0.33,
            "trend": [
                {
                    "month": "May",
                    "year": 2019,
                    "value": 480
                }]
        },
"credits": 95597600,
    "time": 0.02
}

我猜我的代码有问题,因为我使用了一个转换器,它没有正确读取正文请求。这是我的代码:

var headers = {
    'Authorization': 'Bearer (API-KEY-HERE)',
    'Accept': 'application/x-www-form-urlencoded'
};


var options = {
    url: 'https://api.keywordseverywhere.com/v1/get_keyword_data',
    method: 'POST',
    headers: headers,
    body: 'dataSource=gkp&country=us&currency=USD&kw[]=keywords&kw[]=keyword'
};

function callback(error, response, body) {
    console.log(response.body)
    
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request.post(options, callback);

你的代码的问题是正文,无论如何代码应该是这样的:

const request = require('request');
var options = {
    'method': 'POST',
    'url': 'https://api.keywordseverywhere.com/v1/get_keyword_data',
    'headers': {
    'Authorization': 'Bearer insertAPIKeyHere'
    },
    formData: {
    'kw[]': 'keyword',
    'country': 'us',
    'currency': 'usd',
    'dataSource': 'gkp'
    }
};
request(options, function (error, response) {
    if (error){console.log(error)};
    console.log(response.body);
});