PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
success.i = 0
; 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
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::setCkTag(xml, "soapenv:Envelope")
CkXml::ckAddAttribute(xml,"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
CkXml::ckAddAttribute(xml,"xmlns:xsd","http://www.w3.org/2001/XMLSchema")
CkXml::ckAddAttribute(xml,"xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/")
CkXml::ckAddAttribute(xml,"xmlns:api","http://api.farmaclick.infarma.it")
CkXml::ckUpdateChildContent(xml,"soapenv:Header","")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin",1,"soapenv:encodingStyle","http://schemas.xmlsoap.org/soap/encoding/")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean",1,"xsi:type","urn:LoginInputBean")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean",1,"xmlns:urn","urn:BeanService")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|nomeTerminale",1,"xsi:type","soapenc:string")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|nomeTerminale",1,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|api:FCKLogin|inBean|nomeTerminale","?")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|password",1,"xsi:type","soapenc:string")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|password",1,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|api:FCKLogin|inBean|password","?")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|passwordSH",1,"xsi:type","soapenc:string")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|passwordSH",1,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|api:FCKLogin|inBean|passwordSH","?")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|userName",1,"xsi:type","soapenc:string")
CkXml::ckUpdateAttrAt(xml,"soapenv:Body|api:FCKLogin|inBean|userName",1,"xmlns:soapenc","http://schemas.xmlsoap.org/soap/encoding/")
CkXml::ckUpdateChildContent(xml,"soapenv:Body|api:FCKLogin|inBean|userName","?")
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Indicate we want to allow an empty header..
CkHttp::setCkUncommonOptions(http, "AllowEmptyHeaders")
CkHttp::ckSetRequestHeader(http,"SoapAction","")
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpStr(http,"POST","http://webservice.unicospa.it:8181/Service.svc/FrontEndService/Farmaclick2010001FCKLogin",CkXml::ckGetXml(xml),"utf-8","text/xml",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkXml::ckDispose(xml)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; A status code = 200 indicates success.
Debug "Response status code = " + Str(CkHttpResponse::ckStatusCode(resp))
xmlResp.i = CkXml::ckCreate()
If xmlResp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::ckLoadXml(xmlResp,CkHttpResponse::ckBodyStr(resp))
Debug "Response body text:"
Debug CkXml::ckGetXml(xmlResp)
CkXml::ckDispose(xml)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
CkXml::ckDispose(xmlResp)
ProcedureReturn
EndProcedure