Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get redirect URL withour following in RestClient

if resp.code == 302
   resp.follow_redirection(req, result, &block)
else
   final_url = req.url
   resp.return!(req, result, &block)
   final_url
end

This works to get the redirect URL. But how to get it without following redirects

like image 245
user3636388 Avatar asked Dec 01 '25 17:12

user3636388


2 Answers

In rest-client 2.0, you can also pass max_redirects: 0 and get the response from the RestClient::MovedPermanently or other redirect exception object:

begin
  RestClient::Request.execute(method: :get, url: 'http://google.com',
                              max_redirects: 0)
rescue RestClient::ExceptionWithResponse => err
  puts err.response.inspect
  if err.response.code == 302
    puts err.response.headers[:location]
  end
end

=> <RestClient::Response 301 "<HTML><HEAD...">
like image 70
A B Avatar answered Dec 04 '25 06:12

A B


RestClient.post(url, :param => p) do |response, request, result, &block|
 if [301, 302, 307].include? response.code
    redirected_url = response.headers[:location]
 else
   response.return!(request, result, &block)
 end
end
like image 37
Ross Worth Avatar answered Dec 04 '25 07:12

Ross Worth



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!