Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) HTTP Redirect HandlingExamine HTTP redirects.
use chilkat(); # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = chilkat::CkHttp->new(); # Please note: The URL used in this example was a valid redirect many years ago, # but the site does not exist any longer.. $url = "http://www.planyourweddingonline.co.za/"; # The FollowRedirects property controls whether redirects # are automatically followed. The default behavior is to # automatically follow redirects. # Explicitly set FollowRedirects so that redirects are automatically taken: $http->put_FollowRedirects(1); # Send the HTTP GET and return the content in a string. $html = $http->quickGetStr($url); if ($http->get_LastMethodSuccess() != 1) { print $http->lastErrorText() . "\r\n"; } # On success, LastErrorText will provide information about # what happened during the call. print "--------------- LastErrorText ------------------" . "\r\n"; print $http->lastErrorText() . "\r\n"; print "------------------------------------------------" . "\r\n"; # In this case, we see something like this: # ChilkatLog: # QuickGetHtml: # DllDate: Jul 27 2007 # url: http://www.planyourweddingonline.co.za/ # httpServer: www.planyourweddingonline.co.za # port: 80 # StatusCode: 302 # StatusText: Found # Reading chunked response # redirectUrl: main/main/home/index.php # url: http://www.planyourweddingonline.co.za/main/main/home/index.php # StatusCode: 302 # StatusText: Found # Reading chunked response # redirectUrl: /main/main/home/index.php?SMC=1 # url: http://www.planyourweddingonline.co.za/main/main/home/index.php?SMC=1 # StatusCode: 200 # StatusText: OK # CompressedSize: 7434 # UncompressedSize: 40999 # Was the GET redirected? if ($http->get_WasRedirected() == 1) { print "Chilkat HTTP followed the redirect." . "\r\n"; # Display the final redirect URL: print "Final URL:" . "\r\n"; print $http->finalRedirectUrl() . "\r\n"; # Note the HTML returned is from the final redirect URL. } else { print "Not redirected." . "\r\n"; } $status = $http->get_LastStatus(); if ($status == 200) { print "status = 200, OK!" . "\r\n"; } else { print "HTTP Response status = " . $status . "\r\n"; # Display the complete response header. print $http->lastResponseHeader() . "\r\n"; } # Now try it without following redirects: print "-------- Now trying without following redirects...." . "\r\n"; $http->put_FollowRedirects(0); # Send the HTTP GET and return the content in a string. $html = $http->quickGetStr($url); if ($http->get_LastMethodSuccess() != 1) { # the HTML string can NULL if a 302 redirect response is received. print "HTML string returned NULL..." . "\r\n"; } # On success, LastErrorText will provide information about # what happened during the call. print "--------------- LastErrorText ------------------" . "\r\n"; print $http->lastErrorText() . "\r\n"; print "------------------------------------------------" . "\r\n"; # In this case, we see something like this: # ChilkatLog: # QuickGetHtml: # DllDate: Jul 27 2007 # url: http://www.planyourweddingonline.co.za/ # StatusCode: 302 # StatusText: Found # Reading chunked response # redirectUrl: main/main/home/index.php # Was this a redirect? Even if FollowRedirects is false, # WasRedirected will be true (non-zero) if the response # indicated a redirect. if ($http->get_WasRedirected() == 1) { print "This was a redirect response" . "\r\n"; # When redirects are not followed, FinalRedirectUrl # contains the redirect URL that would've been taken... # Display the redirect URL, which was not taken... print "Redirect URL:" . "\r\n"; print $http->finalRedirectUrl() . "\r\n"; } else { print "Not redirected." . "\r\n"; } $status = $http->get_LastStatus(); if ($status == 200) { print "status = 200, OK!" . "\r\n"; } else { print "HTTP Response status = " . $status . "\r\n"; # Display the complete response header. print $http->lastResponseHeader() . "\r\n"; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.