Как сделать запись https в Node Js без стороннего модуля?
Я работаю над проектом, который требует https get и post методов. У меня есть короткая функция https.get, работающая здесь...
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
});
Моя проблема в том, что нет https.post, и я уже пробовал решение http здесь с https-модулем Как сделать запрос HTTP POST в node.js?, но возвращает ошибки консоли.
У меня не было проблем с использованием get и post с Ajax в моем браузере с тем же api. Я могу использовать https.get для отправки информации о запросе, но я не думаю, что это будет правильный путь, и я не думаю, что он будет работать с отправкой файлов позже, если я решит расширить.
Есть ли небольшой пример с минимальными требованиями, чтобы сделать https.request, что будет https.post, если он есть? Я не хочу использовать модули npm.
Ответы
Ответ 1
Например, вот так:
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();