Sample code for 30+ languages & platforms
Lua

SOAP Request to farmaclick.infarma.it

See more HTTP Misc Examples

Demonstrates how to make a SOAP HTTP request to the FCKLogin method of farmaclick.infarma.it.

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

-- Here is an example of an HTTP POST Request we'll be sending:

-- POST /documento.php HTTP/1.1
-- Content-Type: text/xml;charset=UTF-8
-- SOAPAction: https://conexion.facto.cl/documento.php/emitirDocumento
--
-- <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.farmaclick.infarma.it">
--    <soapenv:Header/>
--    <soapenv:Body>
--       <api:FCKLogin soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
--          <inBean xsi:type="urn:LoginInputBean" xmlns:urn="urn:BeanService">
--             <nomeTerminale xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</nomeTerminale>
--             <password xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</password>
--             <passwordSH xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</passwordSH>
--             <userName xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">?</userName>
--          </inBean>
--       </api:FCKLogin>
--    </soapenv:Body>
-- </soapenv:Envelope>

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

local xml = chilkat.Xml.new()
xml.tag = "soapenv:Envelope"
xml:add_attribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
xml:add_attribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema")
xml:add_attribute("xmlns:soapenv", "http://schemas.xmlsoap.org/soap/envelope/")
xml:add_attribute("xmlns:api", "http://api.farmaclick.infarma.it")
xml:update_child_content("soapenv:Header", "")
xml:update_attr_at("soapenv:Body|api:FCKLogin", true, "soapenv:encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean", true, "xsi:type", "urn:LoginInputBean")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean", true, "xmlns:urn", "urn:BeanService")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|nomeTerminale", true, "xsi:type", "soapenc:string")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|nomeTerminale", true, "xmlns:soapenc", "http://schemas.xmlsoap.org/soap/encoding/")
xml:update_child_content("soapenv:Body|api:FCKLogin|inBean|nomeTerminale", "?")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|password", true, "xsi:type", "soapenc:string")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|password", true, "xmlns:soapenc", "http://schemas.xmlsoap.org/soap/encoding/")
xml:update_child_content("soapenv:Body|api:FCKLogin|inBean|password", "?")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|passwordSH", true, "xsi:type", "soapenc:string")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|passwordSH", true, "xmlns:soapenc", "http://schemas.xmlsoap.org/soap/encoding/")
xml:update_child_content("soapenv:Body|api:FCKLogin|inBean|passwordSH", "?")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|userName", true, "xsi:type", "soapenc:string")
xml:update_attr_at("soapenv:Body|api:FCKLogin|inBean|userName", true, "xmlns:soapenc", "http://schemas.xmlsoap.org/soap/encoding/")
xml:update_child_content("soapenv:Body|api:FCKLogin|inBean|userName", "?")

local http = chilkat.Http.new()

-- Indicate we want to allow an empty header..
http.uncommon_options = "AllowEmptyHeaders"
http:set_request_header("SoapAction", "")

local resp = chilkat.HttpResponse.new()
local success = http:http_str("POST", "http://webservice.unicospa.it:8181/Service.svc/FrontEndService/Farmaclick2010001FCKLogin", xml:get_xml(), "utf-8", "text/xml", resp)
if not success then
    print(http.last_error_text)
    return
end

-- A status code = 200 indicates success.
print("Response status code = " .. resp.status_code)

local xmlResp = chilkat.Xml.new()
xmlResp:load_xml(resp.body_str)
print("Response body text:")
print(xmlResp:get_xml())