Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SFTP
SMTP
Socket / SSL
Spider
SSH
SSH Key
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA
LZW

 

 

 

 

 

 

 

HTTP in a Background Thread (Asynchronous HTTP)

This example shows the technique one would follow to run any Chilkat HTTP method in a background task. (Only HTTP methods that communicate with an HTTP server are background-enabled. Methods that perform no HTTP communications return immediately and never need to be backgrounded.)

Download Chilkat Ruby Library

require 'chilkat'

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

#  To run an HTTP method asynchronously in a background thread, set
#  the UseBgThread property equal to true
http.put_UseBgThread(true)

#  For those programming languages that support event callbacks:
#  events are not fired when a task is running in the background thread.
#  Instead, Chilkat has added the "event log" mechanism.  While the
#  background task is running, events that normally would've been fired
#  are accumulated in the event log.  Your application may periodically check
#  the event log to keep track of the progress of the background task.
#  To enable event logging, set the KeepEventLog property = true
http.put_KeepEventLog(true)

#  Start an asynchronous HTTP download in a background thread.
#  The method will return cktrue if the task was successfully started.
#  Note: When the UseBgThread property = true, all methods involving
#  HTTP communications will be asynchronous.  These methods include:
#  SynchronousRequest, QuickGetStr, QuickGet, PostUrlEncoded, XmlRpc,
#  XmlRpcPut, QuickPutStr, QuickGetObj, QuickDeleteStr, PutText,
#  PutBinary, PostBinary, PostMime, GetHead, DownloadAppend, etc.
success = http.Download("http://www.chilkatsoft.com/download/ChilkatJava.zip","ChilkatJava.zip")
if (success != true)
    print http.lastErrorText() + "\n";
    exit
else
    print "Initiated asynchronous HTTP download..." + "\n";
end

#  Write a loop to wait for the background task to complete.
#  Your application would typically do something different than this --
#  after all... there's no point in doing the task asynchronously if your application
#  is simply going to wait for it to complete -- that's the same as doing it synchronously,
#  and that could've been achieved by a single call to the http.Download method
#  with the UseBgThread = false.
#  However... we do this here for the purpose of demonstration...
while (http.get_BgTaskRunning() == true)
    #  Show the events in the event log that have accumulated so far...
    n = http.get_EventLogCount()
    if (n > 0)

        for i in 0 .. n - 1
            print http.eventLogName(i) + ": " + 
                http.eventLogValue(i) + "\n";
        end
        http.ClearEventLog()
    end

    #  In some programming languages, you might wish to handle user-interface events
    #  For example, in C#  you might call Application.DoEvents()

    #  Sleep .1 seconds -- to keep the CPU from being 100% busy...
    http.SleepMs(100)
end

#  Once the background task has completed, check it for success/failure:
if (http.get_BgTaskSuccess())
    print "Background task completed successfully." + "\n";
end


 

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

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