Sample code for 30+ languages & platforms
PowerShell

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

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

$http = New-Object 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

$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpNoBody("GET","http://yandex.ru/",$resp)
if ($success -eq $false) {
    $($http.LastErrorText)
    exit
}

$status = $resp.StatusCode
$("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.

$loopCount = 0

while (($status -eq 302)) {

    $("Redirect URL: " + $http.FinalRedirectUrl)

    $nextUrl = $http.FinalRedirectUrl
    $success = $http.HttpNoBody("GET",$nextUrl,$resp)
    if ($success -eq $false) {
        $($http.LastErrorText)
        exit
    }

    $status = $resp.StatusCode
    $("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 -gt 10) {
        $("Too many redirects.")
        exit
    }

}