Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
HTTP Session with CookiesHow to keep a session with cookies. Demonstrates how to login to WordPress. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries FreeBSD C++ Libraries HP-UX C++ Libraries BlackBerry QNX C++ Libraries // Needs #include <CkHttpRequest.h> // Needs #include <CkHttp.h> // Needs #include <CkHttpResponse.h> CkString strOut; 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) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); 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... const char * html; html = http.quickGetStr("http://chilkat.wordpress.com/wp-login.php"); if (html == 0 ) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); 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. const char * domain; long port; bool ssl; domain = "chilkat.wordpress.com"; port = 80; ssl = false; CkHttpResponse *resp = 0; resp = http.SynchronousRequest(domain,port,ssl,req); if (resp == 0 ) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Is this a 302 redirect? if (resp->get_StatusCode() == 302) { // Get the redirect URL: const char * redirectUrl; redirectUrl = resp->getHeaderField("Location"); html = http.quickGetStr(redirectUrl); if (html == 0 ) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); } else { strOut.append(html); strOut.append("\r\n"); } } else { strOut.append(resp->bodyStr()); strOut.append("\r\n"); } SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.