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. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATHTTPLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var req: TChilkatHttpRequest; http: TChilkatHttp; success: Integer; html: String; domain: String; port: Integer; ssl: Integer; resp: IChilkatHttpResponse; responseStatus: Integer; begin req := TChilkatHttpRequest.Create(Self); http := TChilkatHttp.Create(Self); // Any string unlocks the component for the 1st 30-days. success := http.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(http.LastErrorText); end; // Cookies may be persisted to a directory in the filesystem, // or alternatively cached in memory by using the "memory" // keyword: http.CookieDir := 'memory'; // Accumulated cookies are sent with each GET/POST: http.SaveCookies := 1; // Cookies received in HTTP responses are to be saved: http.SendCookies := 1; // 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: html := http.QuickGetStr('https://secure.del.icio.us/login'); if (http.LastStatus <> 200) then begin ShowMessage(http.LastErrorText); end; // 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.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. domain := 'secure.del.icio.us'; port := 443; ssl := 1; resp := http.SynchronousRequest(domain,port,ssl,req.DefaultInterface); if (resp = nil ) then begin Memo1.Lines.Add(http.LastErrorText); end else begin responseStatus := resp.StatusCode; if (responseStatus = 302) then begin // We have a redirect. Follow it... // Note: the FollowRedirects property causes // 301/302 responses to GET requests to be // automatically followed. http.FollowRedirects := 1; html := http.QuickGetStr(resp.GetHeaderField('Location')); if (http.LastStatus <> 200) then begin ShowMessage(http.LastErrorText); end; end else begin html := resp.BodyStr; end; Memo1.Lines.Add(IntToStr(responseStatus)); // Display the HTML source of the page returned. Memo1.Lines.Add(html); end; end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.