Delphi Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Amazon S3
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

HTTPS Form Login

Download Chilkat HTTP ActiveX

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

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;

 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser