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. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATHTTPLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var http: TChilkatHttp; success: Integer; url: String; html: String; status: Integer; loopCount: Integer; begin http := TChilkatHttp.Create(Self); // Any string unlocks the component for the 1st 30-days. success := http.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(http.LastErrorText); end; 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: http.FollowRedirects := 0; // Send the HTTP GET and return the content in a string. html := http.QuickGetStr(url); if (html = NULL ) then begin ShowMessage(http.LastErrorText); end; status := http.LastStatus; Memo1.Lines.Add('HTTP Response Status: ' + IntToStr(status)); // 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. Memo1.Lines.Add('Redirect URL: ' + http.FinalRedirectUrl); loopCount := 0; while (status = 302) do begin url := http.FinalRedirectUrl; html := http.QuickGetStr(url); if (html = NULL ) then begin ShowMessage(http.LastErrorText); break; end; status := http.LastStatus; Memo1.Lines.Add('Redirect URL: ' + http.FinalRedirectUrl); // 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) then begin break; end; end; end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.