Sample code for 30+ languages & platforms
AutoIt

SOAP Web Service (HTTP POST)

Demonstrates how to call PostXml to call a SOAP web service.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

;  --------------------------------------------------------------------------------
;  Also see Chilkat's Online WSDL Code Generator
;  to generate code and SOAP Request and Response XML for each operation in a WSDL.
;  --------------------------------------------------------------------------------

;  This example uses a live web service at:
;  http://www.webservicex.net/uklocation.asmx
;  It gets the UK town,Postcode and County by Postcode(First Section of Post Code)

;  The SOAP XML will look like this:
;  <?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>
;      <GetUKLocationByPostCode xmlns="http://www.webserviceX.NET">
;        <PostCode>string</PostCode>
;      </GetUKLocationByPostCode>
;    </soap:Body>
;  </soap:Envelope>

;  For this example's sake, we'll load the XML from a file.  We'll test using PostCode "E3".  
;  The SOAP XML for this example may be downloaded from:
;  http://www.chilkatsoft.com/testData/ukPostCodeSoap.xml
$oXml = ObjCreate("Chilkat.Xml")
$bSuccess = $oXml.LoadXmlFile("ukPostCodeSoap.xml")
If ($bSuccess = False) Then
    ConsoleWrite($oXml.LastErrorText & @CRLF)
    Exit
EndIf

Local $strXml = $oXml.GetXml()

Local $iResponseStatusCode
$oHttp = ObjCreate("Chilkat.Http")

;  We'll need to add this in the HTTP header:
;  SOAPAction: "http://www.webserviceX.NET/GetUKLocationByPostCode"
$oHttp.SetRequestHeader "SOAPAction","http://www.webserviceX.NET/GetUKLocationByPostCode"

;  The endpoint for this soap service is:
Local $sEndPoint = "http://www.webservicex.net/uklocation.asmx"

;  Note: This particular web service was live and functioning at the time this example
;  was written.  It is possible that as time progresses, this web service will no longer
;  be availble...
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpStr("POST",$sEndPoint,$strXml,"utf-8","text/xml",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

$iResponseStatusCode = $oResp.StatusCode
;  You may wish to verify that the responseStatusCode equals 200...
ConsoleWrite("Response Status Code: " & $iResponseStatusCode & @CRLF)

;  You may examine the exact HTTP header sent with the POST like this:
ConsoleWrite("LastHeader:" & @CRLF)
ConsoleWrite($oHttp.LastHeader & @CRLF)

;  Examine the XML returned by the web service:
ConsoleWrite("XML Response:" & @CRLF)
$oXmlResp = ObjCreate("Chilkat.Xml")
$oXmlResp.LoadXml($oResp.BodyStr)
ConsoleWrite($oXmlResp.GetXml() & @CRLF)

;  Use this online tool to generate parsing code from response XML: 
;  Generate Parsing Code from XML