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) Making SOAP Requests using the REST API

There's no reason a SOAP request cannot be sent using the REST API. It's only a matter of adding a SOAP specific header, and providing the SOAP XML request body. The response body is the SOAP response XML.

This example sends a request to ws.cdyne.com to get city weather by zip code.

Chilkat ActiveX Downloads

ActiveX for 32-bit and 64-bit Windows

'  Demonstrates how to do a SOAP request using the REST API.

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

Dim rest As New ChilkatRest

'  This is the request to be sent:

/*
POST /WeatherWS/Weather.asmx HTTP/1.1
Host: wsf.cdyne.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetCityWeatherByZIP xmlns="http://ws.cdyne.com/WeatherWS/">
      <ZIP>string</ZIP>
    </GetCityWeatherByZIP>
  </soap:Body>
</soap:Envelope>
*/

'  Note: The application does not need to set the Host or Content-Length headers.
'  Chilkat will automatically add these headers.

'  Make the initial connection (without sending a request yet).
Dim bTls As Long
bTls = 0
Dim port As Long
port = 80
Dim bAutoReconnect As Long
bAutoReconnect = 1
'  In this particular case, it is important to connect to "wsf.cdyne.com", not "ws.cdyne.com"...
Dim success As Long
success = rest.Connect("wsf.cdyne.com",port,bTls,bAutoReconnect)
If (success <> 1) Then
    Text1.Text = Text1.Text & rest.LastErrorText & vbCrLf
    Exit Sub
End If

'  Add request headers:
success = rest.AddHeader("Content-Type","text/xml; charset=utf-8")
success = rest.AddHeader("SOAPAction","http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP")

'  Build the SOAP XML request body.
Dim soapXml As New ChilkatXml

soapXml.Tag = "soap:Envelope"
success = soapXml.AddAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
success = soapXml.AddAttribute("xmlns:xsd","http://www.w3.org/2001/XMLSchema")
success = soapXml.AddAttribute("xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/")

soapXml.NewChild2 "soap:Body",""
success = soapXml.GetChild2(0)
soapXml.NewChild2 "GetCityWeatherByZIP",""
success = soapXml.GetChild2(0)
success = soapXml.AddAttribute("xmlns","http://ws.cdyne.com/WeatherWS/")
soapXml.NewChild2 "ZIP","60187"
soapXml.GetRoot2 

Text1.Text = Text1.Text & soapXml.GetXml() & vbCrLf

'  Send the SOAP request
Dim responseXml As String
responseXml = rest.FullRequestString("POST","/WeatherWS/Weather.asmx",soapXml.GetXml())
If (rest.LastMethodSuccess <> 1) Then
    Text1.Text = Text1.Text & rest.LastErrorText & vbCrLf
    Exit Sub
End If

'  When successful, the response status code will equal 200.
If (rest.ResponseStatusCode <> 200) Then
    '  Examine the request/response to see what happened.
    Text1.Text = Text1.Text & "response status code = " & rest.ResponseStatusCode & vbCrLf
    Text1.Text = Text1.Text & "response status text = " & rest.ResponseStatusText & vbCrLf
    Text1.Text = Text1.Text & "response header: " & rest.ResponseHeader & vbCrLf
    Text1.Text = Text1.Text & "response body (if any): " & responseXml & vbCrLf
    Text1.Text = Text1.Text & "---" & vbCrLf
    Text1.Text = Text1.Text & "LastRequestStartLine: " & rest.LastRequestStartLine & vbCrLf
    Text1.Text = Text1.Text & "LastRequestHeader: " & rest.LastRequestHeader & vbCrLf
    Exit Sub
End If

Dim xml As New ChilkatXml
success = xml.LoadXml(responseXml)

'  GetXml will emit XML that is nicely indented for human viewing..
Text1.Text = Text1.Text & xml.GetXml() & vbCrLf

'  A sample response XML is shown below...

'  To get some information, use ChilkatPath.  For example...
Text1.Text = Text1.Text & "Temperature: " & xml.ChilkatPath("soap:Body|GetCityWeatherByZIPResponse|GetCityWeatherByZIPResult|Temperature|*") & vbCrLf

Text1.Text = Text1.Text & "Success." & vbCrLf


/*
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <GetCityWeatherByZIPResponse xmlns="http://ws.cdyne.com/WeatherWS/">
            <GetCityWeatherByZIPResult>
                <Success>true</Success>
                <ResponseText>City Found</ResponseText>
                <State>IL</State>
                <City>Wheaton</City>
                <WeatherStationCity>West Chicago</WeatherStationCity>
                <WeatherID>10</WeatherID>
                <Description>Mostly Sunny</Description>
                <Temperature>33</Temperature>
                <RelativeHumidity>39</RelativeHumidity>
                <Wind>VRB5</Wind>
                <Pressure>30.33F</Pressure>
                <Visibility />
                <WindChill />
                <Remarks />
            </GetCityWeatherByZIPResult>
        </GetCityWeatherByZIPResponse>
    </soap:Body>
</soap:Envelope>
*/

 

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