![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C#) HTTP Redirect HandlingExamine HTTP redirects.
// This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Chilkat.Http http = new Chilkat.Http(); string url; string html; int status; // 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.FollowRedirects = true; // Send the HTTP GET and return the content in a string. html = http.QuickGetStr(url); if (http.LastMethodSuccess != true) { Debug.WriteLine(http.LastErrorText); } // On success, LastErrorText will provide information about // what happened during the call. Debug.WriteLine("--------------- LastErrorText ------------------"); Debug.WriteLine(http.LastErrorText); Debug.WriteLine("------------------------------------------------"); // 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.WasRedirected == true) { Debug.WriteLine("Chilkat HTTP followed the redirect."); // Display the final redirect URL: Debug.WriteLine("Final URL:"); Debug.WriteLine(http.FinalRedirectUrl); // Note the HTML returned is from the final redirect URL. } else { Debug.WriteLine("Not redirected."); } status = http.LastStatus; if (status == 200) { Debug.WriteLine("status = 200, OK!"); } else { Debug.WriteLine("HTTP Response status = " + Convert.ToString(status)); // Display the complete response header. Debug.WriteLine(http.LastResponseHeader); } // Now try it without following redirects: Debug.WriteLine("-------- Now trying without following redirects...."); http.FollowRedirects = false; // Send the HTTP GET and return the content in a string. html = http.QuickGetStr(url); if (http.LastMethodSuccess != true) { // the HTML string can NULL if a 302 redirect response is received. Debug.WriteLine("HTML string returned NULL..."); } // On success, LastErrorText will provide information about // what happened during the call. Debug.WriteLine("--------------- LastErrorText ------------------"); Debug.WriteLine(http.LastErrorText); Debug.WriteLine("------------------------------------------------"); // 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.WasRedirected == true) { Debug.WriteLine("This was a redirect response"); // When redirects are not followed, FinalRedirectUrl // contains the redirect URL that would've been taken... // Display the redirect URL, which was not taken... Debug.WriteLine("Redirect URL:"); Debug.WriteLine(http.FinalRedirectUrl); } else { Debug.WriteLine("Not redirected."); } status = http.LastStatus; if (status == 200) { Debug.WriteLine("status = 200, OK!"); } else { Debug.WriteLine("HTTP Response status = " + Convert.ToString(status)); // Display the complete response header. Debug.WriteLine(http.LastResponseHeader); } |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.