Ruby
Ruby
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat Ruby Downloads
require 'chilkat'
success = false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
http = Chilkat::CkHttp.new()
# The FollowRedirects property controls whether redirects
# are automatically followed. The default behavior is to
# automatically follow redirects.
# Explicitly set FollowRedirects so that redirects are NOT automatically taken:
http.put_FollowRedirects(false)
resp = Chilkat::CkHttpResponse.new()
success = http.HttpNoBody("GET","http://yandex.ru/",resp)
if (success == false)
print http.lastErrorText() + "\n";
exit
end
status = resp.get_StatusCode()
print "HTTP Response Status: " + status.to_s() + "\n";
# The FinalRedirectUrl property will contain the redirect URL
# If FollowRedirects was equal to true, then all of the
# intermediate redirects (if any) would be followed until
# there were no more redirects. However, because
# FollowRedirects is not true, FinalRedirectUrl contains
# the next redirect URL.
loopCount = 0
while (status == 302)
print "Redirect URL: " + http.finalRedirectUrl() + "\n";
nextUrl = http.finalRedirectUrl()
success = http.HttpNoBody("GET",nextUrl,resp)
if (success == false)
print http.lastErrorText() + "\n";
exit
end
status = resp.get_StatusCode()
print "HTTP Response Status: " + status.to_s() + "\n";
# For safety, prevent infinite loops by
# keeping a loopCount and only allows following a max
# of 10 redirects:
loopCount = loopCount + 1
if (loopCount > 10)
print "Too many redirects." + "\n";
exit
end
end