使用Node.js发布HTTPS JSON数据(header + body)的简单方法

时间:2018-09-10 11:49:30

标签: json node.js post

在NodeJS中阅读了与“ JSON POST commands”相关的多个Internet帖子之后,我现在完全迷路了!尝试创建一个简单的脚本以使用https将数据发送到设备的Restful API接口。没有运气...

  

JSON字符串需要包含:标头。 (基本)身份验证令牌和正文   内容类似:   '{“ address”:address,“ address6”:“”,“ comment”:“”,“ duids”:[],“ hostnames”:[],“ interface”:“”};

希望有人可以提供一个很好的例子,或者可以再次将我引向正确的方向。

3 个答案:

答案 0 :(得分:1)

您可以使用内置模块https进行REST API调用,请求签名如下:

https.request(URL [,options] [,回调])

根据您的情况,您可以尝试以下代码:

var options = {
   host: 'host-name',
   port: 443,
   path: 'api-path',
   method: 'POST',
   // authentication headers
   headers: {
      'Authorization': 'Basic ' + new Buffer(username + ':' + passw).toString('base64')
   }   
};

const req = https.request(options, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

答案 1 :(得分:1)

几天前,我遇到了完全相同的问题,最后我创建了一个名为json-post的超小型模块。

const jsonPOST = require('json-post');
// or import jsonPOST from 'json-post'

jsonPOST(
  'https://whatever:5000/seriously',
  // your JSON data as object
  {hello: 'world'},
  // optionally any extra needed header
  {'Authorization': 'Basic ' +
    new Buffer(username + ':' + passw).toString('base64')}
).then(
  console.info,
  console.error
);

该舞蹈与上一个回复中显示的舞蹈相似,但以多种方式进行了简化。它也适用于GitHub OAuth和其他服务。

答案 2 :(得分:0)

每当需要在nodejs中进行HTTP请求时,我总是使用request库。

var request = require('request');
request({
     method: 'POST', 
     uri: 'http://myuri.com',
     headers: {
            'Content-Type' : 'application/json', 
            'AnotherHeader' : 'anotherValue' 
     }, 
     json: myjsonobj
}, (err, response, body) => {
        // handler here
})

还有其他发出请求的方式,例如request.post()引用here