Ruby的HTTP 客戶端:Faraday
Faraday 是一個Ruby 的HTTP 客戶端開發庫,提供了一個通用的接口,支持如下適配器:
- Net::HTTP
- Excon
- Typhoeus
- Patron
- EventMachine
示例代碼:
conn = Faraday.new(:url => 'http://sushi.com') do |faraday| faraday.request :url_encoded # form-encode POST params faraday.response :logger # log requests to STDOUT faraday.adapter Faraday.default_adapter # make requests with Net::HTTP end # set proxy with string conn.options.proxy = "http://user:password@example.org/" # set proxy with hash conn.options.proxy = { :uri => 'http://user:passwordexample.org' } # specify proxy user/pass conn.options.proxy = { :uri => 'http://user:pass.org', :user => 'user', :password => 'pass' } ## GET ## response = conn.get '/nigiri/sake.json' # GET http://sushi.com/nigiri/sake.json response.body conn.get '/nigiri', { :name => 'Maguro' } # GET /nigiri?name=Maguro conn.get do |req| # GET http://sushi.com/search?page=2&limit=100 req.url '/search', :page => 2 req.params['limit'] = 100 end ## POST ## conn.post '/nigiri', { :name => 'Maguro' } # POST "name=maguro" to http://sushi.com/nigiri # post payload as JSON instead of "www-form-urlencoded" encoding: conn.post do |req| req.url '/nigiri' req.headers['Content-Type'] = 'application/json' req.body = '{ "name": "Unagi" }' end ## Per-request options ## conn.get do |req| req.url '/search' req.options.timeout = 5 # open/read timeout in seconds req.options.open_timeout = 2 # connection open timeout in seconds # set proxy with string req.options.proxy = "http://user:password@example.org/" # set proxy with hash req.options.proxy = { :uri => 'http://user:passwordexample.org' } # specify proxy user/pass req.options.proxy = { :uri => 'http://user:pass.org', :user => 'user', :password => 'pass' } end
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!