Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

HTTP SOAP 1.1 Request and Response using POST

See more HTTP Examples

Demonstrates a working SOAP 1.1 request and response using POST with a live server. You may try running this example with the URLs and data provided. See http://secure.smartbearsoftware.com/samples/testcomplete10/webservices/Service.asmx?WSDL for details

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- 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.
-- --------------------------------------------------------------------------------

local http = chilkat.Http.new()

-- Generate the following XML:

-- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:smar="http://smartbear.com">
--    <soapenv:Header/>
--    <soapenv:Body>
--       <smar:HelloWorld/>
--    </soapenv:Body>
-- </soapenv:Envelope>

local soapXml = chilkat.Xml.new()
soapXml.tag = "soapenv:Envelope"
soapXml:add_attribute("xmlns:soapenv", "http://schemas.xmlsoap.org/soap/envelope/")
soapXml:add_attribute("xmlns:smar", "http://smartbear.com")
soapXml:update_child_content("soapenv:Header", "")
soapXml:update_child_content("soapenv:Body|smar:HelloWorld", "")

print(soapXml:get_xml())

local req = chilkat.HttpRequest.new()
req.http_verb = "POST"
req.send_charset = false
req:add_header("Content-Type", "text/xml; charset=utf-8")
req:add_header("SOAPAction", "http://smartbear.com/HelloWorld")
req.path = "/samples/testcomplete10/webservices/Service.asmx"
local success = req:load_body_from_string(soapXml:get_xml(), "utf-8")

http.follow_redirects = true

local resp = chilkat.HttpResponse.new()
success = http:http_sreq("secure.smartbearsoftware.com", 443, true, req, resp)
if not success then
    print(http.last_error_text)
    return
end

local xmlResponse = chilkat.Xml.new()
success = xmlResponse:load_xml(resp.body_str)
print(xmlResponse:get_xml())

-- A successful XML response:

-- <?xml version="1.0" encoding="utf-8" ?>
-- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
--     <soap:Body>
--         <HelloWorldResponse xmlns="http://smartbear.com">
--             <HelloWorldResult>Hello World</HelloWorldResult>
--         </HelloWorldResponse>
--     </soap:Body>
-- </soap:Envelope>