`

Net::HTTP 使用方式

    博客分类:
  • http
阅读更多
在 UbiSunrsie 裡面介紹過的小小 Script 裡面有用到,就直接用範例來解釋一下使用方式。




GET
require 'net/http'
Net::HTTP.version_1_2
Net::HTTP.start('www.google.com.tw', 80) {|http|
response = http.get('/index.html')
puts response.body
}
基本上,Start一個 Net::HTTP Connection HOST,然後使用 http.get來抓取你要的頁面,最後用 response.body 印出來即可。

POST
require 'net/http'
Net::HTTP.version_1_2
url ='example.com'
action = '/cgi-bin/query'
Net::HTTP.start( url , 80 ) {|http|
response = http.post( action , 'var1=value1&var2=value2' )
response.body.each do |line|
puts line
end
}
稍微複雜一點的作法,除了 http.get 變成 http.post 之外,後面的 variable = value 的形式是採用 application/x-www-form-urlencoded 的形式傳遞出去的,大家應該都很熟悉。

如果不喜歡這樣,還有其他作法

require 'net/http'
require 'uri'
res = Net::HTTP.post_form(URI.parse('http://example.com'), {'var'=> 'value' , 'var2' => 'value2' })
res.body.each do |line|
puts line
end
end
好處是 value 傳遞是用 hash 方式來傳遞,比較 Ruby 化,壞處是比起 Net::HTTP.post_form ,我比較喜歡 http.post 這樣的形式。
分享到:
评论
1 楼 jerry 2008-08-15  
https可以作吗?

相关推荐

Global site tag (gtag.js) - Google Analytics