Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Python Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
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
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
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 Python 2.5 Library

Download Chilkat Python 2.6 Library

Download Chilkat Python 2.6 Library (x64)

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

    #  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."


 

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

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