Node.js で HTTP/HTTPS リクエスト を行う方法

0 件のコメント

Node.js で HTTP / HTTPS の GETリクエスト や POSTリクエスト をする方法をまとめます。 Node.js 標準機能で実装もできますが…無駄なコードが多くなってしまうので request モジュール を利用して実装するのが簡単です。 今回は request モジュール を利用して GETリクエスト または POSTリクエスト を行うサンプルコードを載せます。

サンプルコード

GETリクエスト、POSTリクエストを行う簡単なサンプルコードを以下に記載します。

GETリクエスト

リクエストで http://localhost:3000/api/test?testkey=testvalue&hoge=hoge を行う例です。 https へアクセスする場合はそのまま URL を https で記載すれば動作します。

var webclient = require("request");

webclient.get({
  url: "http://localhost:3000/api/test",
  qs: {
    testkey: "testvalue",
    hoge: "hoge"
  }
}, function (error, response, body) {
  console.log(body);
});

POSTリクエスト

リクエストで http://localhost:3000/api/testPOST を行い、そのリクエストボディーに JSON文字列 を指定する例です。

var webclient = require("request");

webclient.post({
  url: "http://localhost:3000/api/test",
  headers: {
    "content-type": "application/json"
  },
  body: JSON.stringify({foo: "bar"})
}, function (error, response, body){
  console.log(body);
});

API仕様

request(option, callback)

HTTPリクエスト または HTTPSリクエスト を行います。

option

Type: object

HTTP/HTTPSリクエストの設定を行います。 よく使いそうな設定項目だけを以下に取り上げます。

パラメーター 説明
uri || url string 必須。リクエスト先のURLを指定します。
method string リクエストメソッドを指定します。デフォルト "GET"
headers object リクエストヘッダーを指定します。
qs object リクエスト先のURLへ付与するクエリ文字列を指定します。
body Buffer, String, ReadStream リクエストボディーを指定します。JSONを指定する場合は文字列化して指定します。
form object 値が設定された場合、content-type: application/x-www-form-urlencoded でリクエストを行います。
formData object 値が設定された場合、 content-type: multipart/form-data でリクエストを行います。
multipart array 値が設定された場合、 multipart/related でリクエストを行います。
preambleCRLF boolean multipart/form-data リクエストの境界の手前に CRLF改行 を挿入します。
postambleCRLF boolean multipart/form-data リクエストの境界の後ろに CRLF改行 を挿入します。
json boolean body に JSON文字列 を指定している場合、リクエストヘッダーに content-type: application/json を付与します。 また、レスポンスボディーは JSONオブジェクト として パース を行います。

callback

Type: Function(Error error, http.IncomingMessage response, string / Buffer body)

レスポンスを受け取った際に呼び出されます。

参考記事