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
(DataFlex) Manually Follow HTTP RedirectsDemonstrates how to manually follow redirects for an HTTP GET.
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Variant vResp Handle hoResp Integer iStatus Integer iLoopCount String sNextUrl String sTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End // 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: Set ComFollowRedirects Of hoHttp To False Get ComQuickGetObj Of hoHttp "http://yandex.ru/" To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComStatusCode Of hoResp To iStatus Showln "HTTP Response Status: " iStatus // 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. Move 0 To iLoopCount While (iStatus = 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. Get ComFinalRedirectUrl Of hoHttp To sTemp1 Showln "Redirect URL: " sTemp1 Send Destroy of hoResp Get ComFinalRedirectUrl Of hoHttp To sNextUrl Get ComQuickGetObj Of hoHttp sNextUrl To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComStatusCode Of hoResp To iStatus Showln "HTTP Response Status: " iStatus // For safety, prevent infinite loops by // keeping a loopCount and only allows following a max // of 10 redirects: Move (iLoopCount + 1) To iLoopCount If (iLoopCount > 10) Begin Send Destroy of hoResp Showln "Too many redirects." Procedure_Return End Send Destroy of hoResp Loop End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.