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

HTTPS Form Login

Using the del.icio.us site, demonstrates how to programmatically login via a form.

Download Chilkat HTTP ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATHTTPLib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
req: TChilkatHttpRequest;
http: TChilkatHttp;
success: Integer;
html: String;
domain: String;
port: Integer;
ssl: Integer;
resp: IChilkatHttpResponse;
responseStatus: Integer;

begin
req := TChilkatHttpRequest.Create(Self);
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;

//  Cookies may be persisted to a directory in the filesystem,
//  or alternatively cached in memory by using the "memory"
//  keyword:
http.CookieDir := 'memory';
//  Accumulated cookies are sent with each GET/POST:
http.SaveCookies := 1;
//  Cookies received in HTTP responses are to be saved:
http.SendCookies := 1;

//  Get the page with the login form.  We're only doing this
//  just in case there are cookies that need to be cached
//  and re-sent in the next step:

html := http.QuickGetStr('https://secure.del.icio.us/login');
if (http.LastStatus <> 200) then
  begin
    ShowMessage(http.LastErrorText);

  end;

//  Examining the "Page Info" in FireFox reveals a form with
//  a target of https://secure.del.icio.us/login with
//  fields of "user_name", "password", and "login".  The "login"
//  field is nothing more than the submit button and holds
//  the value "log in".

//  Build an HTTP POST Request:
req.UsePost();
req.Path := '/login';
req.AddParam('user_name','chilkatsoft');
req.AddParam('password','****');
req.AddParam('login','log in');

//  Send the HTTP POST and get the response.  Note: This is a blocking call.
//  The method does not return until the full HTTP response is received.

domain := 'secure.del.icio.us';
port := 443;
ssl := 1;

resp := http.SynchronousRequest(domain,port,ssl,req.DefaultInterface);
if (resp = nil ) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
  end
else
  begin
    responseStatus := resp.StatusCode;
    if (responseStatus = 302) then
      begin

        //  We have a redirect.  Follow it...
        //  Note: the FollowRedirects property causes
        //  301/302 responses to GET requests to be
        //  automatically followed.
        http.FollowRedirects := 1;
        html := http.QuickGetStr(resp.GetHeaderField('Location'));
        if (http.LastStatus <> 200) then
          begin
            ShowMessage(http.LastErrorText);

          end;

      end
    else
      begin
        html := resp.BodyStr;
      end;

    Memo1.Lines.Add(IntToStr(responseStatus));

    //  Display the HTML source of the page returned.
    Memo1.Lines.Add(html);

  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