class Typhoeus::Request
def self.delete(url, params = {})
def self.delete(url, params = {}) run(url, params.merge(:method => :delete)) end
def self.get(url, params = {})
def self.get(url, params = {}) run(url, params.merge(:method => :get)) end
def self.head(url, params = {})
def self.head(url, params = {}) run(url, params.merge(:method => :head)) end
def self.post(url, params = {})
def self.post(url, params = {}) run(url, params.merge(:method => :post)) end
def self.put(url, params = {})
def self.put(url, params = {}) run(url, params.merge(:method => :put)) end
def self.run(url, params)
def self.run(url, params) r = new(url, params) Typhoeus::Hydra.hydra.queue r Typhoeus::Hydra.hydra.run r.response end
def after_complete(&block)
def after_complete(&block) @after_complete = block end
def after_complete=(proc)
def after_complete=(proc) @after_complete = proc end
def cache_key
def cache_key Digest::SHA1.hexdigest(url) end
def call_after_complete
def call_after_complete @after_complete.call(@handled_response) if @after_complete end
def call_handlers
def call_handlers if @on_complete @handled_response = @on_complete.call(response) call_after_complete end end
def handled_response
def handled_response @handled_response || response end
def handled_response=(val)
def handled_response=(val) @handled_response = val end
def headers
def headers @headers["User-Agent"] = @user_agent @headers end
def host
def host slash_location = @url.index('/', 8) if slash_location @url.slice(0, slash_location) else query_string_location = @url.index('?') return query_string_location ? @url.slice(0, query_string_location) : @url end end
def host_domain
def host_domain @parsed_uri.host end
def initialize(url, options = {})
** +:auth_method
** +:password
** +:username
** +:verbose
** +:ssl_capath
** +:ssl_cacert
** +:ssl_key_password
** +:ssl_key_type
** +:ssl_key
** +:ssl_cert_type
** +:ssl_cert
** +:disable_ssl_peer_verification
** +:proxy
** +:max_redirects
** +:follow_location
** +:cache_timeout+ : cache timeout (ms)
** +:user_agent+ : user agent (string)
** +:headers+ : headers as Hash
** +:connect_timeout+ : connect timeout (ms)
** +:timeout+ : timeout (ms)
** +:body+
** +:params+ : params as a Hash
** +:method+ : :get (default) / :post / :put
* +options+ : A hash containing options among :
* +url+ : Endpoint (URL) of the request
Options:
Initialize a new Request
def initialize(url, options = {}) @method = options[:method] || :get @params = options[:params] @body = options[:body] @timeout = options[:timeout] @connect_timeout = options[:connect_timeout] @headers = options[:headers] || {} @user_agent = options[:user_agent] || Typhoeus::USER_AGENT @cache_timeout = options[:cache_timeout] @follow_location = options[:follow_location] @max_redirects = options[:max_redirects] @proxy = options[:proxy] @proxy_type = options[:proxy_type] @proxy_username = options[:proxy_username] @proxy_password = options[:proxy_password] @proxy_auth_method = options[:proxy_auth_method] @disable_ssl_peer_verification = options[:disable_ssl_peer_verification] @ssl_cert = options[:ssl_cert] @ssl_cert_type = options[:ssl_cert_type] @ssl_key = options[:ssl_key] @ssl_key_type = options[:ssl_key_type] @ssl_key_password = options[:ssl_key_password] @ssl_cacert = options[:ssl_cacert] @ssl_capath = options[:ssl_capath] @verbose = options[:verbose] @username = options[:username] @password = options[:password] @auth_method = options[:auth_method] if @method == :post @url = url else @url = @params ? "#{url}?#{params_string}" : url end @parsed_uri = URI.parse(@url) @on_complete = nil @after_complete = nil @handled_response = nil end
def inspect
def inspect result = ":method => #{self.method.inspect},\n" << "\t:url => #{URI.parse(self.url).to_s}" if self.body and !self.body.empty? result << ",\n\t:body => #{self.body.inspect}" end if self.params and !self.params.empty? result << ",\n\t:params => #{self.params.inspect}" end if self.headers and !self.headers.empty? result << ",\n\t:headers => #{self.headers.inspect}" end result end
def localhost?
def localhost? LOCALHOST_ALIASES.include?(@parsed_uri.host) end
def on_complete(&block)
def on_complete(&block) @on_complete = block end
def on_complete=(proc)
def on_complete=(proc) @on_complete = proc end
def params_string
def params_string traversal = Typhoeus::Utils.traverse_params_hash(params) Typhoeus::Utils.traversal_to_param_string(traversal) end