2016-11-10 62 views
5

https get ve post yöntemleri gerektiren bir proje üzerinde çalışıyorum. Burada çalışmaya kısa https.get işlevi ... varHerhangi bir üçüncü parti modülü olmadan Node Js'de nasıl bir https yayın yapabilirim?

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 
}); 

Benim sorun yok https.post var ve zaten https modülü How to make an HTTP POST request in node.js? burada http çözümünü denedim ancak konsol hata verir olmasıdır.

Ajax ile tarayıcımda aynı api'ye ulaşmak ve bu iletiyi kullanarak sorun yaşamadım. Sorgu bilgilerini göndermek için https.get kullanabilirim ancak bunun doğru bir yol olacağını düşünmüyorum ve eğer genişletmeye karar verirsem daha sonra dosya göndermeyi düşünmüyorum.

https.request adresinin bir https.post olması durumunda, minimum gereksinimleri olan küçük bir örnek var mı? Npm modülleri kullanmak istemiyorum. Böyle Örneğin

cevap

18

:

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(); 
+3

Güzel cevap @aring. JSON göndermek istiyorsanız, aşağıdakileri değiştirin: '' 'var postData = JSON.stringify ({msg: 'Hello World!'})' ' ve ' '' İçerik Türü ':' application/json'''' – loonison101