庇护祝福的分享

Be worthy

ruby的HTTP类库

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>