Class: HTTParty::Request
- Inherits:
-
Object
- Object
- HTTParty::Request
- Defined in:
- lib/httparty/request.rb
Overview
:nodoc:
Constant Summary
- SupportedHTTPMethods =
[ Net::HTTP::Get, Net::HTTP::Post, Net::HTTP::Patch, Net::HTTP::Put, Net::HTTP::Delete, Net::HTTP::Head, Net::HTTP::Options, Net::HTTP::Move, Net::HTTP::Copy ]
- SupportedURISchemes =
[URI::HTTP, URI::HTTPS, URI::Generic]
- NON_RAILS_QUERY_STRING_NORMALIZER =
Proc.new do |query| Array(query).map do |key, value| if value.nil? key.to_s elsif value.is_a?(Array) value.map {|v| "#{key}=#{URI.encode(v.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))}"} else HashConversions.to_params(key => value) end end.flatten.sort.join('&') end
Instance Attribute Summary (collapse)
-
- (Object) http_method
Returns the value of attribute http_method.
-
- (Object) last_response
Returns the value of attribute last_response.
-
- (Object) last_uri
Returns the value of attribute last_uri.
-
- (Object) options
Returns the value of attribute options.
-
- (Object) path
Returns the value of attribute path.
-
- (Object) redirect
Returns the value of attribute redirect.
Instance Method Summary (collapse)
- - (Object) base_uri
- - (Object) connection_adapter
- - (Object) format
-
- (Request) initialize(http_method, path, o = {})
constructor
A new instance of Request.
- - (Object) parser
- - (Object) perform(&block)
- - (Object) request_uri(uri)
- - (Object) uri
Constructor Details
- (Request) initialize(http_method, path, o = {})
A new instance of Request
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/httparty/request.rb', line 32 def initialize(http_method, path, o={}) self.http_method = http_method self.path = path self. = { :limit => o.delete(:no_follow) ? 1 : 5, :assume_utf16_is_big_endian => true, :default_params => {}, :follow_redirects => true, :parser => Parser, :connection_adapter => ConnectionAdapter }.merge(o) end |
Instance Attribute Details
- (Object) http_method
Returns the value of attribute http_method
29 30 31 |
# File 'lib/httparty/request.rb', line 29 def http_method @http_method end |
- (Object) last_response
Returns the value of attribute last_response
29 30 31 |
# File 'lib/httparty/request.rb', line 29 def last_response @last_response end |
- (Object) last_uri
Returns the value of attribute last_uri
29 30 31 |
# File 'lib/httparty/request.rb', line 29 def last_uri @last_uri end |
- (Object) options
Returns the value of attribute options
29 30 31 |
# File 'lib/httparty/request.rb', line 29 def @options end |
- (Object) path
Returns the value of attribute path
30 31 32 |
# File 'lib/httparty/request.rb', line 30 def path @path end |
- (Object) redirect
Returns the value of attribute redirect
29 30 31 |
# File 'lib/httparty/request.rb', line 29 def redirect @redirect end |
Instance Method Details
- (Object) base_uri
72 73 74 |
# File 'lib/httparty/request.rb', line 72 def base_uri redirect ? "#{@last_uri.scheme}://#{@last_uri.host}" : [:base_uri] end |
- (Object) connection_adapter
84 85 86 |
# File 'lib/httparty/request.rb', line 84 def connection_adapter [:connection_adapter] end |
- (Object) format
76 77 78 |
# File 'lib/httparty/request.rb', line 76 def format [:format] || (format_from_mimetype(last_response['content-type']) if last_response) end |
- (Object) parser
80 81 82 |
# File 'lib/httparty/request.rb', line 80 def parser [:parser] end |
- (Object) perform(&block)
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/httparty/request.rb', line 88 def perform(&block) validate setup_raw_request chunked_body = nil self.last_response = http.request(@raw_request) do |http_response| if block chunks = [] http_response.read_body do |fragment| chunks << fragment block.call(fragment) end chunked_body = chunks.join end end handle_deflation handle_response(chunked_body, &block) end |
- (Object) request_uri(uri)
49 50 51 52 53 54 55 |
# File 'lib/httparty/request.rb', line 49 def request_uri(uri) if uri.respond_to? :request_uri uri.request_uri else uri.path end end |
- (Object) uri
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/httparty/request.rb', line 57 def uri new_uri = path.relative? ? URI.parse("#{base_uri}#{path}") : path.clone # avoid double query string on redirects [#12] unless redirect new_uri.query = query_string(new_uri) end unless SupportedURISchemes.include? new_uri.class raise UnsupportedURIScheme, "'#{new_uri}' Must be HTTP, HTTPS or Generic" end @last_uri = new_uri end |