PHP Extension
PHP Extension
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$http = new CkHttp();
// 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->put_FollowRedirects(false);
$resp = new CkHttpResponse();
$success = $http->HttpNoBody('GET','http://yandex.ru/',$resp);
if ($success == false) {
print $http->lastErrorText() . "\n";
exit;
}
$status = $resp->get_StatusCode();
print 'HTTP Response Status: ' . $status . "\n";
// 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() . "\n";
$nextUrl = $http->finalRedirectUrl();
$success = $http->HttpNoBody('GET',$nextUrl,$resp);
if ($success == false) {
print $http->lastErrorText() . "\n";
exit;
}
$status = $resp->get_StatusCode();
print 'HTTP Response Status: ' . $status . "\n";
// 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.' . "\n";
exit;
}
}
?>