Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3,4,5...TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

DataFlex Examples

Web API Categories

ASN.1
Amazon EC2
Amazon Glacier
Amazon S3
Amazon S3 (new)
Amazon SES
Amazon SNS
Amazon SQS
Async
Azure Cloud Storage
Azure Service Bus
Azure Table Service
Base64
Bounced Email
Box
CAdES
CSR
CSV
Certificates
Compression
DKIM / DomainKey
DSA
Diffie-Hellman
Digital Signatures
Dropbox
Dynamics CRM
EBICS
ECC
Ed25519
Email Object
Encryption
FTP
FileAccess
Firebase
GMail REST API
GMail SMTP/IMAP/POP
Geolocation
Google APIs
Google Calendar
Google Cloud SQL
Google Cloud Storage
Google Drive
Google Photos
Google Sheets
Google Tasks
Gzip
HTML-to-XML/Text
HTTP

HTTP Misc
IMAP
JSON
JSON Web Encryption (JWE)
JSON Web Signatures (JWS)
JSON Web Token (JWT)
Java KeyStore (JKS)
MHT / HTML Email
MIME
MS Storage Providers
Microsoft Graph
NTLM
OAuth1
OAuth2
OIDC
Office365
OneDrive
OpenSSL
Outlook
Outlook Calendar
Outlook Contact
PDF Signatures
PEM
PFX/P12
PKCS11
POP3
PRNG
REST
REST Misc
RSA
SCP
SCard
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
ScMinidriver
SharePoint
Socket/SSL/TLS
Spider
Stream
Tar Archive
Upload
WebSocket
XAdES
XML
XML Digital Signatures
XMP
Zip
curl

 

 

 

(DataFlex) Use an Azure Service SAS

Shows how to use an Azure Service SAS. (In this case, it is an SAS for a blob.)

Chilkat ActiveX Downloads

ActiveX for 32-bit and 64-bit Windows

Use ChilkatAx-9.5.0-win32.pkg

Procedure Test
    Handle hoRest
    Boolean iBTls
    Integer iPort
    Boolean iBAutoReconnect
    Boolean iSuccess
    Handle hoSbToken
    Variant vBinData
    Handle hoBinData
    Variant vSbResponse
    Handle hoSbResponse
    String sTemp1
    Integer iTemp1

    // Azure Blob Service Example: Upload binary bytes to a block blob.
    // This uses a Service SAS for Authorization.

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    // Connect to the Azure Storage Blob Service
    Move True To iBTls
    Move 443 To iPort
    Move True To iBAutoReconnect
    // In this example, the storage account name is "chilkat".
    Get ComConnect Of hoRest "chilkat.blob.core.windows.net" iPort iBTls iBAutoReconnect To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // ----------------------------------------------------------------------------------------------
    // The code above this comment could be placed inside a function/subroutine within the application
    // because the connection does not need to be made for every request.  Once the connection is made
    // the app may send many requests..
    // ----------------------------------------------------------------------------------------------

    // Note: The application does not need to explicitly set the following
    // headers: Content-Length, x-ms-date, Authorization.  These headers
    // are automatically set by Chilkat.

    // Let's load a previously computed Azure Storage Account SAS token and use it.
    // See How to Create an Azure Service SAS
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbToken
    If (Not(IsComObjectCreated(hoSbToken))) Begin
        Send CreateComObject of hoSbToken
    End
    Get ComLoadFile Of hoSbToken "qa_data/tokens/azureStorageServiceSas.txt" "utf-8" To iSuccess
    If (iSuccess <> True) Begin
        Showln "Failed to load SAS token."
        Procedure_Return
    End

    // Add the Shared Access Signature query params for authorization.
    Get ComGetAsString Of hoSbToken To sTemp1
    Get ComAddQueryParams Of hoRest sTemp1 To iSuccess

    // IMPORTANT: Make sure to set the x-ms-blob-type header:
    Get ComAddHeader Of hoRest "x-ms-blob-type" "BlockBlob" To iSuccess

    // IMPORTANT: Make sure to add the x-ms-date header.
    // When the header name is "x-ms-date", Chilkat will recognize the keyword "NOW" 
    // and will substitute the current system date/time formatted as required by Microsoft.
    Get ComAddHeader Of hoRest "x-ms-date" "NOW" To iSuccess

    // For this example, we'll just load a JPG file into memory..
    Get Create (RefClass(cComChilkatBinData)) To hoBinData
    If (Not(IsComObjectCreated(hoBinData))) Begin
        Send CreateComObject of hoBinData
    End
    Get ComLoadFile Of hoBinData "qa_data/jpg/starfish.jpg" To iSuccess
    If (iSuccess <> True) Begin
        Showln "Failed to load JPG file."
        Procedure_Return
    End

    // Note: The maximum size of a block blob created by uploading in a single step is 64MB.  
    // For larger files, the upload must be broken up into blocks.  There is another Chilkat example for that..
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponse
    If (Not(IsComObjectCreated(hoSbResponse))) Begin
        Send CreateComObject of hoSbResponse
    End
    Get pvComObject of hoBinData to vBinData
    Get pvComObject of hoSbResponse to vSbResponse
    Get ComFullRequestBd Of hoRest "PUT" "/mycontainer/starfish.jpg" vBinData vSbResponse To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // When successful, the Azure Storage service will respond with a 201 response status code,
    // with no response body.
    Get ComResponseStatusCode Of hoRest To iTemp1
    If (iTemp1 <> 201) Begin
        // Examine the request/response to see what happened.
        Get ComResponseStatusCode Of hoRest To iTemp1
        Showln "response status code = " iTemp1
        Get ComResponseStatusText Of hoRest To sTemp1
        Showln "response status text = " sTemp1
        Get ComResponseHeader Of hoRest To sTemp1
        Showln "response header: " sTemp1
        Get ComGetAsString Of hoSbResponse To sTemp1
        Showln "response body (if any): " sTemp1
        Showln "---"
        Get ComLastRequestStartLine Of hoRest To sTemp1
        Showln "LastRequestStartLine: " sTemp1
        Get ComLastRequestHeader Of hoRest To sTemp1
        Showln "LastRequestHeader: " sTemp1
        Showln "Failed."
        Procedure_Return
    End

    Showln "Success."


End_Procedure

 

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