Ich arbeite an einem Projekt, für das https get- und post-Methoden erforderlich sind. Ich habe eine kurze https.get-Funktion, die hier funktioniert ...
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
});
Mein Problem ist, dass es keine https.post gibt und ich die http-Lösung hier bereits mit dem https-Modul ausprobiert habe. Wie erstelle ich eine HTTP-POST-Anfrage in node.js? Gibt aber Konsolenfehler zurück.
Ich hatte kein Problem damit, get und post mit Ajax in meinem Browser auf derselben API zu verwenden. Ich kann https.get verwenden, um Abfrageinformationen zu senden, aber ich denke nicht, dass dies der richtige Weg ist, und ich denke nicht, dass es funktionieren wird, Dateien später zu senden, wenn ich mich für eine Erweiterung entscheide.
Gibt es ein kleines Beispiel mit den Mindestanforderungen, um eine https.-Anfrage zu stellen, was wäre eine https.post, wenn es eine gäbe? Ich möchte keine npm-Module verwenden.
Antworten:
Zum Beispiel so:
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();
quelle
var postData = JSON.stringify({msg: 'Hello World!'})
und'Content-Type': 'application/json'
req.write(postData);
dies die Veröffentlichung der Daten wäre. Wäre ich korrekt? Ich habe Daten, die von meinem Postort zurückkommen, und erhalte ausgegebene Daten in JSON im Terminal. Wie könnte ich diese Daten in einer Variablen speichern, von der ich zurückgekommen bin?