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