Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
HTTPS Form LoginUsing the del.icio.us site, demonstrates how to programmatically login via a form.
#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; } // Cookies may be persisted to a directory in the filesystem, // or alternatively cached in memory by using the "memory" // keyword: http.put_CookieDir("memory"); // Accumulated cookies are sent with each GET/POST: http.put_SaveCookies(true); // Cookies received in HTTP responses are to be saved: http.put_SendCookies(true); // Get the page with the login form. We're only doing this // just in case there are cookies that need to be cached // and re-sent in the next step: CkString html; html = http.quickGetStr("https://secure.del.icio.us/login"); if (http.get_LastStatus() != 200) { printf("%s\n",http.lastErrorText()); return; } // Examining the "Page Info" in FireFox reveals a form with // a target of https://secure.del.icio.us/login with // fields of "user_name", "password", and "login". The "login" // field is nothing more than the submit button and holds // the value "log in". // Build an HTTP POST Request: req.UsePost(); req.put_Path("/login"); req.AddParam("user_name","chilkatsoft"); req.AddParam("password","****"); req.AddParam("login","log in"); // 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 = "secure.del.icio.us"; port = 443; ssl = true; CkHttpResponse *resp = 0; resp = http.SynchronousRequest(domain,port,ssl,req); if (resp == 0 ) { printf("%s\n",http.lastErrorText()); } else { int responseStatus; responseStatus = resp->get_StatusCode(); if (responseStatus == 302) { // We have a redirect. Follow it... // Note: the FollowRedirects property causes // 301/302 responses to GET requests to be // automatically followed. http.put_FollowRedirects(true); html = http.quickGetStr(resp->getHeaderField("Location")); if (http.get_LastStatus() != 200) { printf("%s\n",http.lastErrorText()); return; } } else { html = resp->bodyStr(); } printf("%d\n",responseStatus); // Display the HTML source of the page returned. printf("%s\n",(const char *)html); } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.