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