Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
Tracing HTTP RedirectsExample to trace through HTTP redirects.
#include <C_CkHttp.h> void ChilkatSample(void) { HCkHttp http; BOOL success; const char * url; const char * html; long status; long loopCount; http = CkHttp_Create(); // Any string unlocks the component for the 1st 30-days. success = CkHttp_UnlockComponent(http,"Anything for 30-day trial"); if (success != TRUE) { printf("%s\n",CkHttp_lastErrorText(http)); return; } 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 NOT automatically taken: CkHttp_putFollowRedirects(http,FALSE); // Send the HTTP GET and return the content in a string. html = CkHttp_quickGetStr(http,url); if (html == 0 ) { printf("%s\n",CkHttp_lastErrorText(http)); } status = CkHttp_getLastStatus(http); printf("HTTP Response Status: %d\n",status); // 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. printf("Redirect URL: %s\n",CkHttp_finalRedirectUrl(http)); loopCount = 0; while ((status == 302)) { url = CkHttp_finalRedirectUrl(http); html = CkHttp_quickGetStr(http,url); if (html == 0 ) { printf("%s\n",CkHttp_lastErrorText(http)); break; } status = CkHttp_getLastStatus(http); printf("Redirect URL: %s\n",CkHttp_finalRedirectUrl(http)); // You may wish to check that if FinalRedirectUrl // equals the URL just retrieved. If so, then break out of the // loop. (This check is omitted in this example.) // Instead, this example will prevent infinite loops by // keeping a loopCount and only allows following a max // of 10 redirects: loopCount = loopCount + 1; if (loopCount > 10) { break; } } CkHttp_Dispose(http); } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.