node.jsのいろいろなモジュール35 – SuperAgentでHTTPリクエストを行う

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

軽量HTTPクライアント

SuperAgentとは、柔軟性と読みやすさを兼ね備えた、軽量HTTPクライアントです。
シンプルな使い方から高機能な使い方まで、用途に応じて簡単に使用することができます。

環境構築方法

今回使用した動作環境は以下のとおりです。

  • OS : MacOS X 10.7.5
  • Node.js : v0.10.4
  • npm : 1.2.18

npmを使用してモジュールをインストールしましょう。

% mkdir superagent
% cd superagent
% npm install superagent

サンプルプログラム作成

superagentモジュールをrequireし、メソッドと宛先URLを指定するだけでリクエストを送信することができます。
end関数でコールバックを指定し、レスポンスを参照することができます。

var request = require('superagent');

request.get("http://httpbin.org/html")
   .end(function(res){
       console.log(res);
   });

上記プログラムを実行すると、レスポンス情報がつらつらと表示されます。
get関数以外にも、post(POST)、put(PUT)、del(DELETE)、head(HEAD)関数があります。
また、次のようにしても同じように結果を取得することができます。

・
・
request("GET","http://httpbin.org/html")
   .end(function(res){
       console.log(res);
   });

クエリ文字列を指定したい場合、query関数を使用します。
query関数にはオブジェクトで渡すこともできますし、文字列で渡すことも可能です。

・
・
request
    .get('http://httpbin.org/response-headers')
    .query({ foo: 'bar', baz:'qux' }) //.query('foo=bar&baz=qux')でもOK
    .end(function(res){
        console.log(res.res.body);
    });

パラメータ付きでPOSTすることもできます。次のように、send関数へオブジェクトをそのままパラメータとして渡してPOSTしています。

・
・
request.post("http://httpbin.org/post")
    .set('Content-Type', 'application/json')
    .send({parameter:"value1",foo:"bar"})
    .end(function(res){
       console.log(res);
    });

まとめ

とりあえずSuperAgentの基本的な使い方だけ紹介しました。
ここにはMultipartの処理方法やエラーハンドリング方法等も紹介されてます。
確認してみてください。

参考サイトなど