Sample code for 30+ languages & platforms
AutoIt

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oHttp = ObjCreate("Chilkat.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:
$oHttp.FollowRedirects = False

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpNoBody("GET","http://yandex.ru/",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

Local $iStatus = $oResp.StatusCode
ConsoleWrite("HTTP Response Status: " & $iStatus & @CRLF)

;  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.

Local $iLoopCount = 0

While ($iStatus = 302)

    ConsoleWrite("Redirect URL: " & $oHttp.FinalRedirectUrl & @CRLF)

Local $sNextUrl = $oHttp.FinalRedirectUrl
    $bSuccess = $oHttp.HttpNoBody("GET",$sNextUrl,$oResp)
    If ($bSuccess = False) Then
        ConsoleWrite($oHttp.LastErrorText & @CRLF)
        Exit
    EndIf

    $iStatus = $oResp.StatusCode
    ConsoleWrite("HTTP Response Status: " & $iStatus & @CRLF)

    ;  For safety, prevent infinite loops by
    ;  keeping a loopCount and only allows following a max 
    ;  of 10 redirects:
    $iLoopCount = $iLoopCount + 1
    If ($iLoopCount > 10) Then
        ConsoleWrite("Too many redirects." & @CRLF)
        Exit
    EndIf

Wend