net/httpライブラリを使用しRubyでGETリクエストを送信してみます。
なお、net/httpライブラリは、Rubyの標準ライブラリとなっていますので、事前にインストールする必要はありません。
■Ruby
今回のRubyのバージョンは、「2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]」を使用しています。(Windows10)
■net/httpライブラリを使用しRubyでヘッダーの情報を取得する
では、早速net/httpライブラリを使用しRubyでヘッダーの情報を取得するスクリプトを書いていきます。
■コード
require 'net/http' url = "https://www.yahoo.co.jp/" response = Net::HTTP.get_response(URI.parse(url)) p response.header
requireメソッドでnet/httpライブラリを呼び出します。urlという変数を作成し、その中にGETリクエストを送信するURLを格納します。今回はYahoo!Japan(https://www.yahoo.co.jp/)を指定しています。
次にresponseという変数を作成し、Net::HTTP.get_response()と記述します。これで指定した対象にGETリクエストを送信します。括弧内には今回作成したurl変数を格納します。なお、URI.parse()で解析を行い、データを抽出します。
最後にpメソッドで、抽出したヘッダーの情報を出力します。
■実行
今回のスクリプトを「test.rb」という名前でRubyのカレントディレクトリ(作業ディレクトリ)内に保存し、コマンドプロンプトを起動してスクリプトを実行してみます。
実行してみると、「#<Net::HTTPOK 200 OK readbody=true>」と出力されました。「Net::HTTPOK 200 OK」というのは、net/httpライブラリを使用しGETリクエストを送信した結果、リクエストが成功したことを意味します。
■HTTPでボディを取得し出力する
次に、net/httpライブラリを使用しGETリクエストを送信しボディを取得し出力してみます。
■コード
require 'net/http' Net::HTTP.get_print URI.parse("https://www.yahoo.co.jp/")
requireメソッドでnet/httpライブラリを呼び出します。
GETリクエストを送信しボディを取得し出力する場合はNet::HTTP.get_print()と記述します。さらにURI.parse()で解析を行い、データを抽出します。括弧内には出力させたいURLを指定します。今回もYahoo!Japan(https://www.yahoo.co.jp/)を指定しています。
■実行
今回のスクリプトを「test.rb」という名前でRubyのカレントディレクトリ(作業ディレクトリ)内に保存し、コマンドプロンプトを起動してスクリプトを実行してみます。
実行してみると、GETリクエストを送信されリクエストが成功し、指定したURLの情報が取得され、出力されることを確認できました。
コメント