通过节点请求

时间:2016-04-03 12:08:34

标签: javascript node.js request

我正在尝试从Node构建uClassify API请求。我无法弄清楚我写的代码有什么问题:

  const req = JSON.stringify('Hello, my love!'); 
  const options = {
    body: req,
    method: 'POST',
    url: 'https://api.uclassify.com/v1/uClassify/Sentiment/classify',
    headers: {
      'Content-Type': 'application/json',
      Authorization: 'MyKey'
    }
  };

  request(options, (error, response, body) => {
    if (!error) {
      callback(response);
    }
  });

我收到以下回复:

statusCode: 400,
body: "{"statusCode":400,
        "message": "Error converting value \"Hello, my love!\" to
        type 'UClassify.RestClient.TextPayload'. Path '', line 1, position 17."}"
      }"

the documentation中没有明确的JS说明,我想知道我是否已在我的request代码中正确地在cURL中实现了他们的示例。

  

url -X POST -H"授权:令牌YOUR_READ_API_KEY_HERE" -H   "内容类型:application / json" --data" {\" text \":[\"我很开心   今天\"]}" https://api.uclassify.com/v1/uClassify/Sentiment/classify

1 个答案:

答案 0 :(得分:1)

在您的Node.js代码中,您的身体不正确(但在您的cURL中,您使用正确的身体)。 uClassify期望具有属性texts的对象。 更改node.js代码中的正文:

const req = JSON.stringify({ texts: ['Hello, my love!'] }); 
const options = {
  body: req,
  method: 'POST',
  url: 'https://api.uclassify.com/v1/uClassify/Sentiment/classify',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'MyKey'
  }
};

request(options, (error, response, body) => {
  if (!error) {
    callback(response);
  }
});