hakeの日記

Windows環境でプログラミングの勉強をしています。

net/http

Rubyの勉強
ネット上のhtmlの取得はopenuriでもできますが、同じサーバー上の複数のファイルを取得するにはこちらの方が良いみたいですね。
#headの使い道が今ひとつよくわかっていません。

require 'net/http'
require 'kconv'
Net::HTTP.version_1_2   # おまじない
resh = resb = nil
Net::HTTP.start('d.hatena.ne.jp', 80) {|http|
  resh = http.head('/hake/')
  resb = http.get('/hake/')
}

File.open("f:/http.txt", "w") do |f|
  f.puts "##### header outputs ####################"
  # HEAD部分を表示?
  resh.each do |key,value|
    f.puts "#{key} = #{value}"
  end
  f.puts
  # HTML全体を出力
  f.puts "##### body outputs ####################"
  f.puts resb.body.tosjis
  f.puts
end

#=> ##### header outputs ####################
#=> vary = Accept-Encoding
#=> last-modified = Wed, 20 Sep 2006 11:07:21 GMT
#=> content-type = text/html; charset=euc-jp
#=> date = Wed, 20 Sep 2006 11:07:59 GMT
#=> server = Apache
#=> 
#=> ##### body outputs ####################
#=> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
#=> <html>
#=> <head>
#=> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
#=> <meta http-equiv="Content-Style-Type" content="text/css">
#=> <meta http-equiv="Content-Script-Type" content="text/javascript">
#=> <title>はけの徒然日記</title>
#=> 以下略