Module | HTTParty::ClassMethods |
In: |
lib/httparty.rb
|
Request methods (get, post, put, delete, head, options) all take a common set of options. These are:
There are also another set of options with names corresponding to various class methods. The methods in question are those that let you set a class-wide default, and the options override the defaults on a request-by-request basis. Those options are:
Allows setting a base uri to be used for each request. Will normalize uri to include http, etc.
class Foo include HTTParty base_uri 'twitter.com' end
Allows setting basic authentication username and password.
class Foo include HTTParty basic_auth 'username', 'password' end
Set an output stream for debugging, defaults to $stderr. The output stream is passed on to Net::HTTP#set_debug_output.
class Foo include HTTParty debug_output $stderr end
Allows setting default parameters to be appended to each request. Great for api keys and such.
class Foo include HTTParty default_params :api_key => 'secret', :another => 'foo' end
Allows setting a default timeout for all HTTP calls Timeout is specified in seconds.
class Foo include HTTParty default_timeout 10 end
Allows setting digest authentication username and password.
class Foo include HTTParty digest_auth 'username', 'password' end
Do not send rails style query strings. Specically, don‘t use bracket notation when sending an array
For a query:
get '/', :query => {:selected_ids => [1,2,3]}
The default query string looks like this:
/?selected_ids[]=1&selected_ids[]=2&selected_ids[]=3
Call `disable_rails_query_string_format` to transform the query string into:
/?selected_ids=1&selected_ids=2&selected_ids=3
@example
class Foo include HTTParty disable_rails_query_string_format end
Proceed to the location header when an HTTP response dictates a redirect. Redirects are always followed by default.
@example
class Foo include HTTParty base_uri 'http://google.com' follow_redirects true end
Allows setting the format with which to parse. Must be one of the allowed formats ie: json, xml
class Foo include HTTParty format :json end
Allows making a get request to a url.
class Foo include HTTParty end # Simple get with full url Foo.get('http://foo.com/resource.json') # Simple get with full url and query parameters # ie: http://foo.com/resource.json?limit=10 Foo.get('http://foo.com/resource.json', :query => {:limit => 10})
Allows setting HTTP headers to be used for each request.
class Foo include HTTParty headers 'Accept' => 'text/html' end
Allows setting http proxy information to be used
class Foo include HTTParty http_proxy 'http://foo.com', 80 end
Declare that you wish to maintain the chosen HTTP method across redirects. The default behavior is to follow redirects via the GET method. If you wish to maintain the original method, you can set this option to true.
@example
class Foo include HTTParty base_uri 'http://google.com' maintain_method_across_redirects true end
Declare whether or not to follow redirects. When true, an {HTTParty::RedirectionTooDeep} error will raise upon encountering a redirect. You can then gain access to the response object via HTTParty::RedirectionTooDeep#response.
@see HTTParty::ResponseError#response
@example
class Foo include HTTParty base_uri 'http://google.com' no_follow true end begin Foo.get('/') rescue HTTParty::RedirectionTooDeep => e puts e.response.body end
Allows setting a custom parser for the response.
class Foo include HTTParty parser Proc.new {|data| ...} end
Allows setting a PEM file to be used
class Foo include HTTParty pem File.read('/home/user/my.pem'), "optional password" end
Allows making a post request to a url.
class Foo include HTTParty end # Simple post with full url and setting the body Foo.post('http://foo.com/resources', :body => {:bar => 'baz'}) # Simple post with full url using :query option, # which gets set as form data on the request. Foo.post('http://foo.com/resources', :query => {:bar => 'baz'})
Override the way query strings are normalized. Helpful for overriding the default rails normalization of Array queries.
For a query:
get '/', :query => {:selected_ids => [1,2,3]}
The default query string normalizer returns:
/?selected_ids[]=1&selected_ids[]=2&selected_ids[]=3
Let‘s change it to this:
/?selected_ids=1&selected_ids=2&selected_ids=3
Pass a Proc to the query normalizer which accepts the yielded query.
@example Modifying Array query strings
class ServiceWrapper include HTTParty query_string_normalizer proc { |query| query.map do |key, value| value.map {|v| "#{key}=#{v}"} end.join('&') } end
@param [Proc] normalizer custom query string normalizer. @yield [Hash, String] query string @yieldreturn [Array] an array that will later be joined with ’&’
Allows setting an OpenSSL certificate authority file
class Foo include HTTParty ssl_ca_file '/etc/ssl/certs/ca-certificates.crt' end