Ruby发送Http请求
上一篇 /
下一篇 2013-08-19 20:40:10
/ 个人分类:Ruby
- #basic request
- require "net/https"
- require "uri"
-
- uri = URI.parse("http://google.com")
- http = Net::HTTP.new(uri.host, uri.port) #new a http
- request = Net::HTTP::Get.new(uri.request_uri) #then,new a request
- request.initialize_http_header({"User-Agent" => "My Ruby Script"})
-
- response = http.request(request)
- puts response.code
-
- puts response["location"]
-
- #post request
- uri = URI.parse("http://example.com/search")
- # Shortcut
- response = Net::HTTP.post_form(uri, {"q" => "My query", "per_page" => "50"})
- # Full control
- http = Net::HTTP.new(uri.host, uri.port)
- request = Net::HTTP::Post.new(uri.request_uri)
- request.set_form_data({"q" => "My query", "per_page" => "50"})
- response = http.request(request)
- # save and use cookie
- http = Net::HTTP.new(uri.host,uri.port)
- path = "/login.html"
- cookie = response["set-cookie"]
- data = "key1=value1&key2=value2...."
- headers = {"cookie"=>cookie,"content-type"=>"..."}
- response2 = http.post(path,data,headers)
- 或者:
- request2 = NET::HTTP::Post.new(path)
- request2.set_form_data({"key1"=>"value1","key2"=>"value2"...."})
- request2.initialize_http_header({"cookie"=>cookie})
- response2 = http.request(request2)
- #others
- http = Net::HTTP.new(uri.host, uri.port)
- http.open_timeout = 3
- http.read_timeout = 3
-
-
- request = Net::HTTP::Get.new(uri.request_uri)
-
-
- Net::HTTP::Get
- Net::HTTP::Post
- Net::HTTP::Put
- Net::HTTP::Delete
- Net::HTTP::Head
- Net::HTTP::Options
- request.body = "Request body here."
- request.initialize_http_header({"Accept" => "*/*"})
- request.basic_auth("username", "password")
-
- response = http.request(request)
- response.body
- response.status
- response["header-here"]
收藏
举报
TAG:
Ruby
ruby