在 Node js 中 Rest Api 请求(curl 到 Node.js,python 到 Node.js)

格鲁曼公司

我有一个成功运行的 curl 代码块。

curl -v -X POST "https://someapihost" \
-d "image_url=someimage.jpg" \
-H "Authorization: form1 key2"

并且有一个 python 代码块,它的工作原理完全相同。

import requests

headers = {
    'Authorization': 'form1 key2',
}

data = {
  'image_url': 'someimage.jpg'
}

response = requests.post('https://someapihost/', headers=headers, data=data)

但是我需要同样工作的 Node js 代码块,所以我需要翻译这些代码块。

这是我的翻译。(我使用了https://curl.trillworks.com/#node

var request = require('request');

var headers = {
    'Authorization': 'form1 key2'
};

var dataString = 'image_url=someimage.jpg';

var options = {
    url: 'https://someapihost',
    method: 'POST',
    headers: headers,
    body: dataString
};

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

request(options, callback);

但是 respose.statusCode 返回 400,所以不起作用。我想知道为什么会发生此错误以及如何修改此代码。(当然我通过“npm install request”安装请求)

感谢您阅读这个问题。谢谢

idkxd

这取决于您正在进行的 api 调用,但如果它希望 json 作为输入,我希望以下内容可以工作。

var request = require('request');

var headers = {
  'Authorization': 'form1 key2'
};

var data = {
  image_url: 'someimage.jpg'
}

var options = {
  url: 'https://someapihost',
  method: 'POST',
  headers: headers,
  body: data,
  json: true
};

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

request(options, callback);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章