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
(Visual FoxPro) Manually Follow HTTP RedirectsDemonstrates how to manually follow redirects for an HTTP GET.
LOCAL loHttp LOCAL loResp LOCAL lnStatus LOCAL lnLoopCount LOCAL lcNextUrl * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('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: loHttp.FollowRedirects = 0 loResp = loHttp.QuickGetObj("http://yandex.ru/") IF (loHttp.LastMethodSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp CANCEL ENDIF lnStatus = loResp.StatusCode ? "HTTP Response Status: " + STR(lnStatus) * The FinalRedirectUrl property will contain the redirect URL * If FollowRedirects was equal to 1, then all of the * intermediate redirects (if any) would be followed until * there were no more redirects. However, because * FollowRedirects is not 1, FinalRedirectUrl contains * the next redirect URL. lnLoopCount = 0 DO WHILE (lnStatus = 302) * IMPORTANT: This example requires Chilkat v9.5.0.49 or greater because * the FinalRedirectUrl in prior versions is only set when redirects * are automatically followed. Starting in v9.5.0.49, the FinalRedirectUrl is * set to the next redirect URL when a 301/302 response is received, regardless * of the value of the FollowRedirects property. ? "Redirect URL: " + loHttp.FinalRedirectUrl RELEASE loResp lcNextUrl = loHttp.FinalRedirectUrl loResp = loHttp.QuickGetObj(lcNextUrl) IF (loHttp.LastMethodSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp CANCEL ENDIF lnStatus = loResp.StatusCode ? "HTTP Response Status: " + STR(lnStatus) * For safety, prevent infinite loops by * keeping a loopCount and only allows following a max * of 10 redirects: lnLoopCount = lnLoopCount + 1 IF (lnLoopCount > 10) THEN RELEASE loResp ? "Too many redirects." RELEASE loHttp CANCEL ENDIF RELEASE loResp ENDDO RELEASE loHttp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.