Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Ruby Unicode
Ruby Byte Array
Ruby Certs
Ruby Email
Ruby Encryption
Ruby FTP
HTML-to-XML
Ruby HTTP
Ruby IMAP
Ruby MHT
Ruby MIME
Ruby S/MIME
Ruby Signatures
Ruby RSA
Ruby Socket
Ruby Spider
Ruby Tar
Ruby Upload
Ruby XML
Ruby XMP
Ruby Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

HTTPS Form Login

Using the del.icio.us site, demonstrates how to programmatically login via a form.

Download Chilkat Ruby Library

require 'chilkat'

req = Chilkat::CkHttpRequest.new()
http = Chilkat::CkHttp.new()

#  Any string unlocks the component for the 1st 30-days.
success = http.UnlockComponent("Anything for 30-day trial")
if (success != true)
    print http.lastErrorText() + "\n"
    exit
end

#  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:

html = http.quickGetStr("https://secure.del.icio.us/login")
if (http.get_LastStatus() != 200)
    print http.lastErrorText() + "\n"
    exit
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.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.

domain = "secure.del.icio.us"
port = 443
ssl = true

resp = http.SynchronousRequest(domain,port,ssl,req)
if (resp == nil )
    print http.lastErrorText() + "\n";
else
    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)
            print http.lastErrorText() + "\n"
            exit
        end

    else
        html = resp.bodyStr()
    end

    print responseStatus.to_s() + "\n";

    #  Display the HTML source of the page returned.
    print html + "\n";

end

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.