Sample code for 30+ languages & platforms
B4X

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

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

Dim http As ChilkatHttp
http.Initialize("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 ChilkatHttpResponse
resp.Initialize
success = http.HttpNoBody("GET", "http://yandex.ru/", resp)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


Dim status As Int = resp.StatusCode
Log("HTTP Response Status: " & 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 Int = 0

Do While (status = 302)

    Log("Redirect URL: " & http.FinalRedirectUrl)

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


    status = resp.StatusCode
    Log("HTTP Response Status: " & 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
        Log("Too many redirects.")
        Return
    End If


Loop