class HTTParty::Request

def handle_response(raw_body, &block)

def handle_response(raw_body, &block)
  if response_redirects?
    options[:limit] -= 1
    if options[:logger]
      logger = HTTParty::Logger.build(options[:logger], options[:log_level], options[:log_format])
      logger.format(self, last_response)
    end
    self.path = last_response['location']
    self.redirect = true
    if last_response.class == Net::HTTPSeeOther
      unless options[:maintain_method_across_redirects] && options[:resend_on_redirect]
        self.http_method = Net::HTTP::Get
      end
    elsif last_response.code != '307' && last_response.code != '308'
      unless options[:maintain_method_across_redirects]
        self.http_method = Net::HTTP::Get
      end
    end
    capture_cookies(last_response)
    perform(&block)
  else
    raw_body ||= last_response.body
    body = decompress(raw_body, last_response['content-encoding']) unless raw_body.nil?
    unless body.nil?
      body = encode_text(body, last_response['content-type'])
      if decompress_content?
        last_response.delete('content-encoding')
        raw_body = body
      end
    end
    Response.new(self, last_response, lambda { parse_response(body) }, body: raw_body)
  end
end