Sample code for 30+ languages & platforms
AutoIt

HTTP POST with XML Body

Demonstrates sending an HTTP POST with a XML body.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oHttp = ObjCreate("Chilkat.Http")

;  Implements the following CURL command:

;  curl -X POST https://example.com/StockQuote \
;    -H "Host: www.example.org" \
;    -H "Content-Type: application/soap+xml; charset=utf-8" \
;    -H "SOAPAction: http://www.example.org/StockPrice" \
;    -d '<?xml version="1.0"?>
;  
;  <soap:Envelope
;  xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
;  soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
;  
;  <soap:Body xmlns:m="http://www.example.org/stock">
;    <m:GetStockPrice>
;      <m:StockName>IBM</m:StockName>
;    </m:GetStockPrice>
;  </soap:Body>
;  
;  </soap:Envelope>'

;  Use the following online tool to generate HTTP code from a CURL command
;  Convert a cURL Command to HTTP Source Code

;  Use this online tool to generate code from sample XML:
;  Generate Code to Create XML

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

;  The following XML is sent in the request body.

;  <?xml version="1.0" encoding="utf-8"?>
;  <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
;      <soap:Body xmlns:m="http://www.example.org/stock">
;          <m:GetStockPrice>
;              <m:StockName>IBM</m:StockName>
;          </m:GetStockPrice>
;      </soap:Body>
;  </soap:Envelope>
;  

$oXml = ObjCreate("Chilkat.Xml")
$oXml.Tag = "soap:Envelope"
$oXml.AddAttribute("xmlns:soap","http://www.w3.org/2003/05/soap-envelope/")
$oXml.AddAttribute("soap:encodingStyle","http://www.w3.org/2003/05/soap-encoding")
$oXml.UpdateAttrAt("soap:Body",True,"xmlns:m","http://www.example.org/stock")
$oXml.UpdateChildContent "soap:Body|m:GetStockPrice|m:StockName","IBM"

$oHttp.SetRequestHeader "SOAPAction","http://www.example.org/StockPrice"
$oHttp.SetRequestHeader "Host","www.example.org"
$oHttp.SetRequestHeader "Content-Type","application/soap+xml; charset=utf-8"

$oSbRequestBody = ObjCreate("Chilkat.StringBuilder")
$oXml.GetXmlSb($oSbRequestBody)

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpSb("POST","https://example.com/StockQuote",$oSbRequestBody,"utf-8","application/soap+xml; charset=utf-8",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite($oResp.StatusCode & @CRLF)
ConsoleWrite($oResp.BodyStr & @CRLF)