Sample code for 30+ languages & platforms
CkPython

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat CkPython Downloads

CkPython
import sys
import chilkat

success = False

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

http = chilkat.CkHttp()

# 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()
success = http.HttpNoBody("GET","http://yandex.ru/",resp)
if (success == False):
    print(http.lastErrorText())
    sys.exit()

status = resp.get_StatusCode()
print("HTTP Response Status: " + str(status))

# 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())

    nextUrl = http.finalRedirectUrl()
    success = http.HttpNoBody("GET",nextUrl,resp)
    if (success == False):
        print(http.lastErrorText())
        sys.exit()

    status = resp.get_StatusCode()
    print("HTTP Response Status: " + str(status))

    # 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.")
        sys.exit()