web-dev-qa-db-fra.com

Comment créer une publication https dans Node Js sans module tiers?)

Je travaille sur un projet qui nécessite des méthodes https get et post. J'ai une courte fonction https.get qui fonctionne ici ...

const https = require("https");

function get(url, callback) {
    "use-strict";
    https.get(url, function (result) {
        var dataQueue = "";    
        result.on("data", function (dataBuffer) {
            dataQueue += dataBuffer;
        });
        result.on("end", function () {
            callback(dataQueue);
        });
    });
}

get("https://example.com/method", function (data) {
    // do something with data
});

Mon problème est qu'il n'y a pas de https.post et que j'ai déjà essayé la solution http ici avec le module https Comment créer une requête HTTP POST dans node.js? mais renvoie des erreurs de console.

Je n'ai eu aucun problème en utilisant get et post avec Ajax dans mon navigateur vers la même API. Je peux utiliser https.get pour envoyer des informations de requête, mais je ne pense pas que ce serait la bonne façon de faire et je ne pense pas que l'envoi de fichiers ultérieurement fonctionnera si je décide de développer une extension.

Existe-t-il un petit exemple, avec les exigences minimales, permettant de créer une demande https.request, qu'est-ce qu'un https.post s'il en existait une? Je ne veux pas utiliser les modules npm.

37
Nova

Par exemple, comme ceci:

const querystring = require('querystring');
const https = require('https');

var postData = querystring.stringify({
    'msg' : 'Hello World!'
});

var options = {
  hostname: 'posttestserver.com',
  port: 443,
  path: '/post.php',
  method: 'POST',
  headers: {
       'Content-Type': 'application/x-www-form-urlencoded',
       'Content-Length': postData.length
     }
};

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

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

req.on('error', (e) => {
  console.error(e);
});

req.write(postData);
req.end();
100
aring