net/httpライブラリを使用しRubyでGETリクエストを送信する

スポンサーリンク

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の情報が取得され、出力されることを確認できました。

コメント

タイトルとURLをコピーしました