HTTP
NET::HTTP.get
require "net/http"
Net::HTTP.get('example.com', '/index.html') # => String
uri = URI('http://example.com/index.html?count=10')
Net::HTTP.get(uri) # => String
可以使用get方法进行下载:
File.open("test.jpg" , "w") do |f|
f.write Net::HTTP.get(uri)
end
接收动态参数:
uri = URI('http://bbs.csdn.net/forums/ROR')
params = { :limit => 10, :page => 3 }
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri) #get_response()方返回一个对象
puts res.body if res.is_a?(Net::HTTPSuccess)
URI
Basic
require 'uri'
uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
#=> #<URI::HTTP:0x00000000b14880
URL:http://foo.com/posts?id=30&limit=5#time=1305298413>
uri.scheme #=> "http"
uri.host #=> "foo.com"
uri.path #=> "/posts"
uri.query #=> "id=30&limit=5"
uri.fragment #=> "time=1305298413"
uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
Joins URIs.
require 'uri'
p URI.join("http://example.com/","main.rbx") # => #< URL:http://localhost/main.rbx>
p URI.join('http://example.com', 'foo') # => #< URL:http://example.com/foo>
p URI.join('http://example.com', '/foo', '/bar') # => #< URL:http://example.com/bar>
p URI.join('http://example.com', '/foo', 'bar') # => #< URL:http://example.com/bar>
p URI.join('http://example.com', '/foo/', 'bar') # => #< URL:http://example.com/foo/bar>