Sample code for 30+ languages & platforms
Rust

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 Rust Downloads

Rust

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

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

let http = chilkat::Http::new();

// Indicate we want to allow an empty header..
http.set_uncommon_options("AllowEmptyHeaders");
http.set_request_header("SoapAction", "");

let resp = chilkat::HttpResponse::new();
if http.http_str("POST", "http://webservice.unicospa.it:8181/Service.svc/FrontEndService/Farmaclick2010001FCKLogin", &xml.get_xml().unwrap_or_default(), "utf-8", "text/xml", &resp).is_err() {
    println!("{}", http.last_error_text());
    return;
}

// A status code = 200 indicates success.
println!("Response status code = {}", resp.status_code());

let xml_resp = chilkat::Xml::new();
let _ = xml_resp.load_xml(&resp.body_str());
println!("Response body text:");
println!("{}", xml_resp.get_xml().unwrap_or_default());