Sample code for 30+ languages & platforms
Xojo Plugin

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

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

Dim http As New 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:
http.FollowRedirects = False

Dim resp As New Chilkat.HttpResponse
success = http.HttpNoBody("GET","http://yandex.ru/",resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim status As Int32
status = resp.StatusCode
System.DebugLog("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.

Dim loopCount As Int32
loopCount = 0

While (status = 302)

    System.DebugLog("Redirect URL: " + http.FinalRedirectUrl)

    Dim nextUrl As String
    nextUrl = http.FinalRedirectUrl
    success = http.HttpNoBody("GET",nextUrl,resp)
    If (success = False) Then
        System.DebugLog(http.LastErrorText)
        Return
    End If

    status = resp.StatusCode
    System.DebugLog("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) Then
        System.DebugLog("Too many redirects.")
        Return
    End If

Wend