Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

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


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

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

 

 

 

 

 

 

 

 

HTTP Session with Cookies

How to keep a session with cookies. Demonstrates how to login to WordPress.

Download Chilkat C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C++ Libraries for VC++ 6.0 / Win32

#include <CkHttpRequest.h>
#include <CkHttp.h>
#include <CkString.h>
#include <CkHttpResponse.h>

void ChilkatSample(void)
    {
    CkHttpRequest req;
    CkHttp http;

    bool success;

    //  Any string unlocks the component for the 1st 30-days.
    success = http.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("%s\n",http.lastErrorText());
        return;
    }

    //  This example will demonstrate maintaining a session with
    //  cookies by doing a simple login to a WordPress blog.
    //  Indicate that cookies are to be saved and re-sent.
    //  Instead of using a cookie file, you may use the string "memory"
    //  to save cookies to memory.
    http.put_CookieDir("memory");
    http.put_SendCookies(true);
    http.put_SaveCookies(true);

    //  Let's first hit the chilkat.wordpress.com login page to make sure
    //  we have any initial cookies...
    CkString html;
    html = http.quickGetStr("http://chilkat.wordpress.com/wp-login.php");
    if (html.getNumChars() == 0 ) {
        printf("%s\n",http.lastErrorText());
        return;
    }

    //  Build an HTTP POST request to login
    req.UsePost();
    req.put_Path("/wp-login.php");
    req.AddParam("log","chilkat");
    req.AddParam("pwd","myPassword");
    req.AddParam("rememberme","forever");
    req.AddParam("wp-submit","Login");
    req.AddParam("redirect_to","/wp-admin/");

    req.AddHeader("Referer","http://chilkat.wordpress.com/wp-login.php");

    //  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.
    CkString domain;
    int port;
    bool ssl;
    domain = "chilkat.wordpress.com";
    port = 80;
    ssl = false;
    CkHttpResponse *resp = 0;
    resp = http.SynchronousRequest(domain,port,ssl,req);
    if (resp == 0 ) {
        printf("%s\n",http.lastErrorText());
        return;
    }

    //  Is this a 302 redirect?
    if (resp->get_StatusCode() == 302) {

        //  Get the redirect URL:
        CkString redirectUrl;
        redirectUrl = resp->getHeaderField("Location");

        html = http.quickGetStr(redirectUrl);
        if (html.getNumChars() == 0 ) {
            printf("%s\n",http.lastErrorText());
        }
        else {
            printf("%s\n",(const char *)html);
        }

    }
    else {
        printf("%s\n",resp->bodyStr());
    }

    }

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

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

Mail Component · .NET Mail Component · XML Parser