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)