AutoIt
AutoIt
SOAP Web Service (HTTP POST)
Demonstrates how to call PostXml to call a SOAP web service.Chilkat AutoIt Downloads
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