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 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 Ruby Library

require '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.new()
#  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() + "\n"
    exit
end

cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc.")
if (cert == nil )
    print certStore.lastErrorText() + "\n"
    exit
end

#  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.new()
#  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() + "\n"
    exit
end

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

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

#  Build a HTTPS upload request with the files to be uploaded:
req = Chilkat::CkHttpRequest.new()
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() + "\n"
    exit
end

success = req.AddFileForUpload("file2","dude.gif")
if (success != true)
    print req.lastErrorText() + "\n"
    exit
end

#  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 == nil )
    print http.lastErrorText() + "\n";
else
    #  Display the HTML source of the page returned.
    print resp.bodyStr() + "\n";
end

 

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

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