Python Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Python Examples

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

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

 

 

 

 

 

 

 

(Python) 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.)

 Chilkat Python Module Downloads for Windows, Linux, and MAC OS X

import sys
import chilkat

http = chilkat.CkHttp()

#  Any string unlocks the component for the 1st 30-days.
success = http.UnlockComponent("Anything for 30-day trial")
if (success != True):
    print http.lastErrorText()
    sys.exit()

#  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()
    sys.exit()
else:
    print "Initiated asynchronous HTTP download..."

#  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 range(0,n):
            print http.eventLogName(i) + ": "\
                 + http.eventLogValue(i)

        http.ClearBgEventLog()

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

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


 

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