Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Python Examples

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

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

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

HTTPS Upload with Client SSL Certificate

This example shows how to use a client-side certificate with HTTPS to upload one or more files to a web server.

Download Chilkat Python Library

import sys
import chilkat



#  Chilkat supports SSL with all of its Internet components:
#  SMTP, POP3, IMAP, FTP, and HTTP.

#  Each component includes a method named SetSslClientCert
#  which has one argument -- a Chilkat certificate object.
#  You'll need to use a certificate where you have
#  a private key.  There are many ways to instantiate
#  and load a certificate into a Chilkat certificate object.
#  It may be loaded directly from a .pfx (or .p12) file.
#  It may be loaded from a certificate that has already
#  been installed into the local machine's (registry-based)
#  certificate store, or the current-user certificate store.
#  It may be loaded from a pair of PEM or DER encoded files
#  (one file for the ceritifcate, and one for the corresponding
#  private key).  Browse through the examples at
#  example-code.com for various examples (in the Digital
#  Certificates section).

#  This example will load a cert from a .pfx (i.e. p12) file.

#  Create an instance of a certificate store object, load a PFX file,
#  locate the certificate we need, and use it for signing.
#  (a PFX file may contain more than one certificate.)
certStore = chilkat.CkCertStore()
#  The 1st argument is the filename, the 2nd arg is the
#  PFX file's password:
success = certStore.LoadPfxFile("chilkat.pfx","secret")
if (success != True):
    print certStore.lastErrorText()
    sys.exit()

cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc.")
if (cert == None ):
    print certStore.lastErrorText()
    sys.exit()

#  If a PFX file is known to contain a single certificate,
#  you may load it directly into a Chilkat certificate object.
#  This snippet of source code shows how:
cert2 = chilkat.CkCert()
#  The 1st argument is the filename, the 2nd arg is the
#  PFX file's password:
success = cert2.LoadPfxFile("chilkat.pfx","secret")
if (success != True):
    print cert2.lastErrorText()
    sys.exit()

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

#  Set your HTTPS client certificate:
http.SetSslClientCert(cert)

#  Build a HTTPS upload request with the files to be uploaded:
req = chilkat.CkHttpRequest()
req.UseUpload()

#  The URL we'll be posting to is:
#  http://www.yourwebserver123abc.com/ConsumeUpload.aspx
#  Therefore, the path part of the URL is:
req.put_Path("/ConsumeUpload.aspx")

#  Note: You'll need to edit this example to upload to your
#  own web server.

#  Add some files to the request:
#  The 1st argument is an arbitrary name.  It's the POST form field name.
#  The 2nd argument is the filename currently existing on
#  the local filesystem.  It may include an absolute or relative
#  path, or no path at all if it's in the current working directory.
success = req.AddFileForUpload("file1","hamlet.xml")
if (success != True):
    print req.lastErrorText()
    sys.exit()

success = req.AddFileForUpload("file2","dude.gif")
if (success != True):
    print req.lastErrorText()
    sys.exit()

#  Send the HTTPS POST and get the response.  Note: This is a blocking call.
#  The method does not return until the full HTTPS response is received.

domain = "www.yourwebserver123abc.com"
#  The only difference in coding between non-SSL and SSL is
#  the setting of these two arguments to SynchronousRequest:
port = 443
ssl = True

resp = http.SynchronousRequest(domain,port,ssl,req)
if (resp == None ):
    print http.lastErrorText()
else:
    #  Display the HTML source of the page returned.
    print resp.bodyStr()

 

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

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