Sample code for 30+ languages & platforms
C++

Caching cookies in-memory.

See more HTTP Examples

Caching cookies in-memory. To automatically save cookies to an in-memory cache, set the CookieDir property equal to the keyword "memory". Also, set the SaveCookies property = _TRUE_. If the SendCookies property = _TRUE_, then any cached cookies are automatically re-sent with subsequent GETs and POSTs.

Chilkat C++ Downloads

C++
#include <CkHttp.h>

void ChilkatSample(void)
    {
    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    CkHttp http;

    //  To save cookies to an in-memory cache, set the
    //  CookieDir equal to "memory".  Also,
    //  set the SaveCookies property:
    http.put_CookieDir("memory");
    http.put_SaveCookies(true);

    //  To cause cached cookies to be sent with 
    //  subsequent HTTP requests, set the SendCookies
    //  property = true.
    http.put_SendCookies(true);

    //  Any methods that do a GET, POST, etc. will save 
    //  cookies to the CookieDir (which in this case is an 
    //  in-memory cache.
    const char *html = 0;
    html = http.quickGetStr("https://www.paypal.com/");

    //  To fetch the XML cookie(s) for a domain, call GetCookieXml:
    const char *xmlStr = 0;
    xmlStr = http.getCookieXml("paypal.com");

    std::cout << xmlStr << "\r\n";

    //  It's content will look something like this:

    //  <cookies>
    //      <cookie key=".paypal.com,/" v="0" secure="yes">
    //          <navcmd>_home-general</navcmd>
    //          <HttpOnly />
    //          <cwrClyrK4LoCV1fydGbAxiNL6iG>9cz...</cwrClyrK4LoCV1fydGbAxiNL6iG>
    //      </cookie>
    //  </cookies>

    //  If another HTTP request is sent, the cookies should
    //  be added:
    html = http.quickGetStr("https://www.paypal.com/");

    //  Check the LastHeader property to see the MIME header
    //  of the last HTTP request sent.
    //  The "Cookie" header field should be present.
    std::cout << "--- LastHeader ---" << "\r\n";
    std::cout << http.lastHeader() << "\r\n";
    }