Ruby发送Http请求

上一篇 / 下一篇  2013-08-19 20:40:10 / 个人分类:Ruby

  1. #basic request
  2. require "net/https"  
  3. require "uri"  
  4.   
  5. uri = URI.parse("http://google.com")  
  6. http = Net::HTTP.new(uri.host, uri.port)  #new a http
  7. request = Net::HTTP::Get.new(uri.request_uri)  #then,new a request
  8. request.initialize_http_header({"User-Agent" => "My Ruby Script"})  
  9.   
  10. response = http.request(request)  
  11. puts response.code  
  12. # => 301  
  13. puts response["location"# All headers are lowercase  
  14. # => http://www.google.com/
  15.   
  16. #post request

  17. uri = URI.parse("http://example.com/search")
  18. # Shortcut
  19. response = Net::HTTP.post_form(uri, {"q" => "My query", "per_page" => "50"})

  20. # Full control
  21. http = Net::HTTP.new(uri.host, uri.port)
  22. request = Net::HTTP::Post.new(uri.request_uri)
  23. request.set_form_data({"q" => "My query", "per_page" => "50"})
  24. response = http.request(request)

  25. # save and use cookie
  26. http = Net::HTTP.new(uri.host,uri.port)
  27. path = "/login.html"
  28. cookie = response["set-cookie"]
  29. data = "key1=value1&key2=value2...."
  30. headers = {"cookie"=>cookie,"content-type"=>"..."}
  31. response2 = http.post(path,data,headers)
  32. 或者:
  33. request2 = NET::HTTP::Post.new(path)
  34. request2.set_form_data({"key1"=>"value1","key2"=>"value2"...."})
  35. request2.initialize_http_header({"cookie"=>cookie})
  36. response2 = http.request(request2)


  37. #others
  38. http = Net::HTTP.new(uri.host, uri.port)  
  39. http.open_timeout = 3 # in seconds  
  40. http.read_timeout = 3 # in seconds  
  41.   
  42. # The request.  
  43. request = Net::HTTP::Get.new(uri.request_uri)  
  44.   
  45. # All the HTTP 1.1 methods are available.  
  46. Net::HTTP::Get  
  47. Net::HTTP::Post  
  48. Net::HTTP::Put  
  49. Net::HTTP::Delete  
  50. Net::HTTP::Head  
  51. Net::HTTP::Options  

  52. request.body = "Request body here."  
  53. request.initialize_http_header({"Accept" => "*/*"})  
  54. request.basic_auth("username""password")  
  55.   
  56. response = http.request(request)  
  57. response.body  
  58. response.status  
  59. response["header-here"# All headers are lowercase  


TAG: Ruby ruby

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 31684
  • 日志数: 22
  • 建立时间: 2013-08-19
  • 更新时间: 2014-04-01

RSS订阅

Open Toolbar