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 で記載すれば動作します。
1 2 3 4 5 6 7 8 9 10 11 | var webclient = require( "request" ); webclient.get({ qs: { testkey: "testvalue" , hoge: "hoge" } }, function (error, response, body) { console.log(body); }); |
POSTリクエスト
リクエストで http://localhost:3000/api/test
に POST
を行い、そのリクエストボディーに JSON文字列 を指定する例です。
1 2 3 4 5 6 7 8 9 10 11 | var webclient = require( "request" ); webclient.post({ 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)
レスポンスを受け取った際に呼び出されます。
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!