Lua Requires Chilkat v11.0.0+
Lua
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 detailsChilkat Lua Downloads
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>