Sample code for 30+ languages & platforms
Dart

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

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // 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

  final xml = CkXml();
  xml.tag = 'soapenv:Envelope';
  xml.addAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
  xml.addAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
  xml.addAttribute('xmlns:soapenv', 'http://schemas.xmlsoap.org/soap/envelope/');
  xml.addAttribute('xmlns:api', 'http://api.farmaclick.infarma.it');
  xml.updateChildContent('soapenv:Header', '');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin', true, 'soapenv:encodingStyle', 'http://schemas.xmlsoap.org/soap/encoding/');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean', true, 'xsi:type', 'urn:LoginInputBean');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean', true, 'xmlns:urn', 'urn:BeanService');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|nomeTerminale', true, 'xsi:type', 'soapenc:string');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|nomeTerminale', true, 'xmlns:soapenc', 'http://schemas.xmlsoap.org/soap/encoding/');
  xml.updateChildContent('soapenv:Body|api:FCKLogin|inBean|nomeTerminale', '?');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|password', true, 'xsi:type', 'soapenc:string');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|password', true, 'xmlns:soapenc', 'http://schemas.xmlsoap.org/soap/encoding/');
  xml.updateChildContent('soapenv:Body|api:FCKLogin|inBean|password', '?');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|passwordSH', true, 'xsi:type', 'soapenc:string');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|passwordSH', true, 'xmlns:soapenc', 'http://schemas.xmlsoap.org/soap/encoding/');
  xml.updateChildContent('soapenv:Body|api:FCKLogin|inBean|passwordSH', '?');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|userName', true, 'xsi:type', 'soapenc:string');
  xml.updateAttrAt('soapenv:Body|api:FCKLogin|inBean|userName', true, 'xmlns:soapenc', 'http://schemas.xmlsoap.org/soap/encoding/');
  xml.updateChildContent('soapenv:Body|api:FCKLogin|inBean|userName', '?');

  final http = CkHttp();

  // Indicate we want to allow an empty header..
  http.uncommonOptions = 'AllowEmptyHeaders';
  http.setRequestHeader('SoapAction', '');

  final resp = CkHttpResponse();
  try {
    http.httpStr('POST', 'http://webservice.unicospa.it:8181/Service.svc/FrontEndService/Farmaclick2010001FCKLogin', xml.getXml(), 'utf-8', 'text/xml', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // A status code = 200 indicates success.
  print('Response status code = ${resp.statusCode}');

  final xmlResp = CkXml();
  xmlResp.loadXml(resp.bodyStr);
  print('Response body text:');
  print(xmlResp.getXml());
}