Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Bz2
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

Tracing HTTP Redirects

Example to trace through HTTP redirects.

Download Chilkat HTTP ActiveX

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.

Mail Component · .NET Email Component · XML Parser