下記は、Node.js の標準モジュールである http
モジュールを使用して HTTP 通信を行う例です。
レスポンスのデータは、分割された data
イベントとして受信されるので、data
イベントが呼び出される度に受信したデータを結合していく必要があるようです(短いデータを受信するときは結合しなくても全体を受信できてしまうので気付きにくいですが)。
var http = require('http');
var uri = 'http://www.example.com/';
http.get(uri, function(res) {
console.log('Status: ' + res.statusCode);
console.log('Headers: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
var body = '';
// Receive body chunks
res.on('data', function (chunk) {
body += chunk;
});
// Finish receiving a body
res.on('end', function() {
console.log(body);
});
});
HTTP リクエストの内容をより詳細に設定したい場合は、http.get()
の第一引数に URI ではなく、オプションオブジェクトを指定します。
下記の例では、HTTP GET 時のリクエストヘッダとして、user-agent
などを設定しています。
var http = require('http');
var options = {
hostname: 'eow.alc.co.jp',
port: 80,
path: '/search?q=intimidating',
headers: {
'user-agent': 'Mozilla/5.0'
}
};
http.get(options, function(res) {
console.log('Status: ' + res.statusCode);
console.log('Headers: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
var body = '';
// Receive body chunks
res.on('data', function (chunk) {
body += chunk;
});
// Finish receiving a body
res.on('end', function() {
console.log(body);
});
});