or1ko's diary

日々を書きます

標準HTTPモジュールを使ったGETとPOSTリクエストの簡単なサンプルコード

Node.jsには、HTTPクライアントとしてHTTPモジュールが標準で搭載されている。
低レベルのAPIなので、使い方がそこそこ難しく、
そう思っている人がいるのかいくつかライブラリが開発されている模様。
ただ、簡単なHTTPリクエストをするくらいなら使えると便利なので、
GETとPOSTリクエストをするプログラムを勉強してみた。

http://nodejs.org/api/http.html

GET
require('http').get('<url>', function(res) {
  res.setEncoding('utf8');
  res.on('data', function(body) {
    console.log(body);
  });
});

GETは、簡易利用のための関数が用意されているため、比較的楽に呼び出せる。

POST

POSTは、GETと異なり簡易利用のコードがないので、下記のように記載する。
レスポンスに関してはGETと同様に処理。

var http = require('http');

var options = {
  hostname: '<host_name>',
  port: 80,
  path: '/upload',
  method: 'POST'
};

var req = http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function (body) {
    console.log(body);
  });
});

req.on('error', function(e) {
  // エラーが発生した場合の処理を記載する。
});

// ボディーを書き込んでいく
req.write('data\n');
req.write('data\n');
req.end();

requestの戻り値に、ボディーを書き込むメソッドを登録するような形なのかと想像していたけれど、
そのまま直接、write及びend関数を呼び出す。