Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

HTTPS Form Login

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

Download Chilkat Perl Module

use chilkat;

$req = new chilkat::CkHttpRequest();
$http = new chilkat::CkHttp();

#  Any string unlocks the component for the 1st 30-days.
$success = $http->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print $http->lastErrorText() . "\n";
    exit;
}

#  Cookies may be persisted to a directory in the filesystem,
#  or alternatively cached in memory by using the "memory"
#  keyword:
$http->put_CookieDir("memory");
#  Accumulated cookies are sent with each GET/POST:
$http->put_SaveCookies(1);
#  Cookies received in HTTP responses are to be saved:
$http->put_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->get_LastStatus() != 200) {
    print $http->lastErrorText() . "\n";
    exit;
}

#  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->put_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);
if ($resp eq null ) {
    print $http->lastErrorText() . "\r\n";
}
else {
    $responseStatus = $resp->get_StatusCode();
    if ($responseStatus == 302) {

        #  We have a redirect.  Follow it...
        #  Note: the FollowRedirects property causes
        #  301/302 responses to GET requests to be
        #  automatically followed.
        $http->put_FollowRedirects(1);
        $html = $http->quickGetStr($resp->getHeaderField("Location"));
        if ($http->get_LastStatus() != 200) {
            print $http->lastErrorText() . "\n";
            exit;
        }

    }
    else {
        $html = $resp->bodyStr();
    }

    print $responseStatus . "\r\n";

    #  Display the HTML source of the page returned.
    print $html . "\r\n";

}

 

Need a specific example? Send a request to support@chilkatsoft.com

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