Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
MIME
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip


 

 

 

 

 

 

 

 

HTTP Session with Cookies

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

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

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

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

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

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

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

#include <C_CkHttpRequest.h>
#include <C_CkHttp.h>
#include <C_CkHttpResponse.h>

void ChilkatSample(void)
    {
    HCkHttpRequest req;
    HCkHttp http;
    BOOL success;
    const char * html;
    const char * domain;
    long port;
    BOOL ssl;
    HCkHttpResponse resp;
    const char * redirectUrl;

    req = CkHttpRequest_Create();
    http = CkHttp_Create();

    //  Any string unlocks the component for the 1st 30-days.
    success = CkHttp_UnlockComponent(http,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        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.
    CkHttp_putCookieDir(http,"memory");
    CkHttp_putSendCookies(http,TRUE);
    CkHttp_putSaveCookies(http,TRUE);

    //  Let's first hit the chilkat.wordpress.com login page to make sure
    //  we have any initial cookies...

    html = CkHttp_quickGetStr(http,"http://chilkat.wordpress.com/wp-login.php");
    if (html == 0 ) {
        printf("%s\n",CkHttp_lastErrorText(http));
        return;
    }

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

    CkHttpRequest_AddHeader(req,"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.

    domain = "chilkat.wordpress.com";
    port = 80;
    ssl = FALSE;

    resp = CkHttp_SynchronousRequest(http,domain,port,ssl,req);
    if (resp == 0 ) {
        printf("%s\n",CkHttp_lastErrorText(http));
        return;
    }

    //  Is this a 302 redirect?
    if (CkHttpResponse_getStatusCode(resp) == 302) {

        //  Get the redirect URL:

        redirectUrl = CkHttpResponse_getHeaderField(resp,"Location");

        html = CkHttp_quickGetStr(http,redirectUrl);
        if (html == 0 ) {
            printf("%s\n",CkHttp_lastErrorText(http));
        }
        else {
            printf("%s\n",html);
        }

    }
    else {
        printf("%s\n",CkHttpResponse_bodyStr(resp));
    }


    CkHttpRequest_Dispose(req);
    CkHttp_Dispose(http);

    }

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

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