lib/restclient/abstract_response.rb
def _follow_redirection(new_args, &block)

      # parse location header and merge into existing URL
      url = headers[:location]

      # cannot follow redirection if there is no location header
      unless url
        raise exception_with_response
      end

      # handle relative redirects
      unless url.start_with?('http')
        url = URI.parse(request.url).merge(url).to_s
      end
      new_args[:url] = url

      new_args[:password] = request.password
      new_args[:user] = request.user
      new_args[:headers] = request.headers
      new_args[:max_redirects] = request.max_redirects - 1

      # pass through our new cookie jar
      new_args[:cookies] = cookie_jar

      # prepare new request
      new_req = Request.new(new_args)

      # append self to redirection history
      new_req.redirection_history = history + [self]

      # execute redirected request
      new_req.execute(&block)
    end
def _follow_redirection(new_args, &block)

      # parse location header and merge into existing URL
      url = headers[:location]

      # cannot follow redirection if there is no location header
      unless url
        raise exception_with_response
      end

      # handle relative redirects
      unless url.start_with?('http')
        url = URI.parse(request.url).merge(url).to_s
      end
      new_args[:url] = url

      new_args[:password] = request.password
      new_args[:user] = request.user
      new_args[:headers] = request.headers
      new_args[:max_redirects] = request.max_redirects - 1

      # pass through our new cookie jar
      new_args[:cookies] = cookie_jar

      # prepare new request
      new_req = Request.new(new_args)

      # append self to redirection history
      new_req.redirection_history = history + [self]

      # execute redirected request
      new_req.execute(&block)
    end
def _follow_redirection ( new_args , & block ) # parse location header and merge into existing URL url = headers [ :location ] # cannot follow redirection if there is no location header unless url raise exception_with_response end # handle relative redirects unless url . start_with? ( 'http' ) url = URI . parse ( request . url ) . merge ( url ) . to_s end new_args [ :url ] = url new_args [ :password ] = request . password new_args [ :user ] = request . user new_args [ :headers ] = request . headers new_args [ :max_redirects ] = request . max_redirects - 1 # pass through our new cookie jar new_args [ :cookies ] = cookie_jar # prepare new request new_req = Request . new ( new_args ) # append self to redirection history new_req . redirection_history = history + [ self ] # execute redirected request new_req . execute ( block ) end
Follow a redirection

 @param new_args [Hash] Start with this hash of arguments for the
   redirection request. The hash will be mutated, so be sure to dup any
   existing hash that should not be modified.
Follow a redirection