Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.js

Visual Basic 6.0 Examples

Async
Certificates
ECC
Email Object
Encryption
FTP
HTML-to-XML/Text
Gzip
HTTP
IMAP
JSON
MHT / HTML Email
PEM
PFX/P12
Java KeyStore (JKS)
POP3
RSA Encryption
MIME
REST
SCP
SMTP
Socket/SSL/TLS
SSH Key
SSH
SFTP
Stream
Tar Archive
XML
XMP
Zip

More Examples...
Google APIs
Google Cloud Storage
Azure Cloud Storage
Amazon S3 (new)
Google Drive
ASN.1
PRNG
Amazon S3
Bounced Email
CSV
Diffie-Hellman
DKIM / DomainKey
DSA
NTLM
QuickBooks

 

 

 

 

 

 

 

(Visual Basic 6.0) REST Read Response with Stream API

Demonstrates how to make a REST call that returns a binary body, and to receive the body through a stream API.

Chilkat ActiveX Downloads

ActiveX for 32-bit and 64-bit Windows

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

Dim rest As New ChilkatRest

'  Connect to the Amazon AWS REST server.
Dim bTls As Long
bTls = 1
Dim port As Long
port = 443
Dim bAutoReconnect As Long
bAutoReconnect = 1
Dim success As Long
success = rest.Connect("s3.amazonaws.com",port,bTls,bAutoReconnect)

'  Provide AWS credentials for the REST call.
Dim authAws As New ChilkatAuthAws
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"
authAws.ServiceName = "s3"
success = rest.SetAuthAws(authAws)

'  Set the bucket name via the HOST header.
'  In this case, the bucket name is "chilkat100".
rest.Host = "chilkat100.s3.amazonaws.com"

'  Send the request to download the JPG.
success = rest.SendReqNoBody("GET","/starfish.jpg")
If (success <> 1) Then
    Text1.Text = Text1.Text & rest.LastErrorText & vbCrLf
    Exit Sub
End If

'  Read the response header.
Dim responseStatusCode As Long
responseStatusCode = rest.ReadResponseHeader()
If (responseStatusCode < 0) Then
    Text1.Text = Text1.Text & rest.LastErrorText & vbCrLf
    Exit Sub
End If

Text1.Text = Text1.Text & "Response status code = " & responseStatusCode & vbCrLf

'  We expect a 200 response status if the JPG data is coming.
'  Otherwise, we'll get a string response body with an error message(or no response body).
If (responseStatusCode <> 200) Then
    Dim errResponse As String
    errResponse = rest.ReadRespBodyString()
    If (rest.LastMethodSuccess <> 1) Then
        Text1.Text = Text1.Text & rest.LastErrorText & vbCrLf
    Else
        Text1.Text = Text1.Text & errResponse & vbCrLf
    End If

    Exit Sub
End If

Dim bodyStream As New ChilkatStream
'  Set a 10 second read timeout for the stream.
'  (Give up if no data arrives within 10 seconds after calling a read method.)
bodyStream.ReadTimeoutMs = 10000

'  Create a background thread task to read the response body (which feeds
'  it to the bodyStream object.)
Dim readResponseBodyTask As ChilkatTask
Set readResponseBodyTask = rest.ReadRespBodyStreamAsync(bodyStream,1)

'  Start the task.
success = readResponseBodyTask.Run()

'  The application can now read the bodyStream...
Do While (bodyStream.EndOfStream <> 1)

    '  Read the next chunk of bytes (whatever is immediately available,
    '  or wait for more data (up to 10 seconds because we set the stream's ReadTimeoutMs property)
    Dim nextChunk() As Byte
    nextChunk = bodyStream.ReadBytes()
    If (bodyStream.LastMethodSuccess <> 1) Then
        Text1.Text = Text1.Text & "Failed to receive more response data." & vbCrLf
        '  Make sure the background task is aborted/cancelled.
        success = readResponseBodyTask.Cancel()

        Exit Sub
    End If

    '  OK.. the app has the next chunk of the body, and may do whatever it wishes with it...
Loop

Text1.Text = Text1.Text & "Successfully received the entire response body." & vbCrLf

 

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