lib/httpi.rb in httpi-2.4.1 vs lib/httpi.rb in httpi-2.4.2
- old
+ new
@@ -101,11 +101,11 @@
end
class << self
def query_builder
- @query_builder || HTTPI::QueryBuilder::Flat
+ @query_builder ||= HTTPI::QueryBuilder::Flat
end
def query_builder=(builder)
if builder.is_a?(Symbol)
builder_name = builder.to_s.capitalize
@@ -150,21 +150,21 @@
request = Request.new(request) if request.kind_of? String
request(:delete, request, adapter, &block)
end
# Executes an HTTP request for the given +method+.
- def request(method, request, adapter = nil)
+ def request(method, request, adapter = nil, redirects = 0)
adapter_class = load_adapter(adapter, request)
yield adapter_class.client if block_given?
log_request(method, request, Adapter.identify(adapter_class.class))
response = adapter_class.request(method)
- if response && HTTPI::Response::RedirectResponseCodes.member?(response.code) && request.follow_redirect?
+ if response && HTTPI::Response::RedirectResponseCodes.member?(response.code) && request.follow_redirect? && redirects < request.redirect_limit
request.url = URI.join(request.url, response.headers['location'])
log("Following redirect: '#{request.url}'.")
- return request(method, request, adapter)
+ return request(method, request, adapter, redirects + 1)
end
response
end