ホーム DoRuby rubyでのhttpリクエスト

rubyでのhttpリクエスト

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

Rubyのnet/httpライブラリとuriライブラリを用いてヘッダーカスタマイズ、読み込み時間制限を設定できるhttpリクエスト関数を作成してみたいと思います。

今回作成するもの

rubyでヘッダーカスタマイズ、読み込み時間制限を設定できるhttpリクエスト関数を作成する

今回使用するrubyライブラリ一覧

uri は rubyでURI を表す文字列から URI オブジェクトを生成することができるライブラリ

 net/httpはrubyでHTTP リクエストすることができるライブラリ

rubyライブラリuriの使用例

irb(main):001:0> require ‘uri’

=> true

irb(main):006:0> uri = URI.parse(‘http://doruby.kbmj.com/ruby_on_rails/’)

=> #<uri::http:0xb7f655b0 url:http://doruby.kbmj.com/ruby_on_rails/>

irb(main):007:0> uri.host

=> “doruby.kbmj.com”

irb(main):008:0> uri.path

=> “/ruby_on_rails/”

irb(main):009:0> uri.port

=> 80

作成したrubyのヘッダーカスタマイズ、読み込み時間制限を設定できるhttpリクエスト関数

require ‘uri’

require ‘net/http’

module Net

 class HTTP

  def HTTP.get_with_options(uri,open_timeout=nil,read_timeout=nil,headers=nil,options=nil)

   uri = URI.parse(uri) if uri.respond_to? :to_str

   begin

    start(uri.host,uri.port) do |http|

     http.open_timeout= open_timeout if open_timeout

     http.read_timeout= read_timeout if read_timeout

     path_query = uri.path + (uri.query ? ( ‘?’ + uri.query) : ”)

     res = http.get(uri.path,headers)

     return res

    end

   rescue Exception => e

    puts e

    return false

   end

  end

 end

end

作成関数使用例

http://doruby.kbmj.com/yy_on_railsに5秒で読み込みが完了しなければERRORにしたいとき

res = Net::HTTP.get_with_options(‘http://doruby.kbmj.com/yy_on_rails’,nil,5,{‘Accept-Language’ => ‘jp’})

記事を共有

最近人気な記事