Простой способ публикации данных HTTPS JSON (заголовок + тело) с помощью Node.js - PullRequest
0 голосов
/ 10 сентября 2018

После прочтения нескольких интернет-сообщений, связанных с "JSON POST commands" в NodeJS, я теперь полностью потерян!Попытался создать простой скрипт для отправки данных на интерфейс API Restful устройства с помощью https.Без всякой удачи ...

Строка JSON должна содержать: заголовок вкл.(Базовый) Auth Token & Body содержимое выглядит примерно так: '{"address": address, "address6": "", "comment": "", "duids": [], "hostnames": [], "interface":" "};

Надеясь, что у кого-нибудь есть хороший пример или он может снова указать мне правильное направление.

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

У меня была такая же проблема всего несколько дней назад, и я закончил тем, что создал супер крошечный модуль с именем 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 и других сервисов.

0 голосов
/ 11 сентября 2018

Я всегда использую библиотеку request всякий раз, когда мне нужно сделать HTTP-запрос в nodejs.

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() см. здесь

0 голосов
/ 10 сентября 2018

Вы можете использовать встроенный модуль https для вызова API REST, подпись запроса выглядит следующим образом:

https.request (url [, options] [, callback])

В вашем случае вы можете попробовать следующий код:

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);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...