Sample code for 30+ languages & platforms
Chilkat2-Python

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat Chilkat2-Python Downloads

Chilkat2-Python
import sys
import chilkat2

success = False

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

http = chilkat2.Http()

# 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.FollowRedirects = False

resp = chilkat2.HttpResponse()
success = http.HttpNoBody("GET","http://yandex.ru/",resp)
if (success == False):
    print(http.LastErrorText)
    sys.exit()

status = resp.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.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()