Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
HTTP Session with CookiesHow to keep a session with cookies. Demonstrates how to login to WordPress.
#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.