SOAP WSDL Generate Code

CheckpointServiceSoap12 / VratiSubjekt

ASP AutoIt C C (Unicode) C++ C++ (Unicode) C# DataFlex Delphi Foxpro Go Java Node.js Objective-C Perl PHP Extension PowerBuilder Powershell PureBasic Python CkPython Ruby SQL Server Swift TCL VB.NET VB6 VBScript Xojo
IncludeFile "CkHttp.pb"
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkXml.pb"

Procedure ChilkatExample()

    xml.i = CkXml::ckCreate()
    If xml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkXml::setCkTag(xml, "soap:Envelope")
    CkXml::ckAddAttribute(xml,"xmlns:soap","http://www.w3.org/2003/05/soap-envelope")
    CkXml::ckAddAttribute(xml,"xmlns:ser","service.checkpoint.rs")
    CkXml::ckUpdateChildContent(xml,"soap:Header","")
    CkXml::ckUpdateChildContent(xml,"soap:Body|ser:VratiSubjekt|ser:mbr","string")
    CkXml::ckUpdateChildContent(xml,"soap:Body|ser:VratiSubjekt|ser:pib","string")
    CkXml::ckUpdateChildContent(xml,"soap:Body|ser:VratiSubjekt|ser:naziv","string")
    CkXml::ckUpdateChildContent(xml,"soap:Body|ser:VratiSubjekt|ser:token","string")

    ; In a SOAP HTTP request, including the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) in the XML body is generally not required. 
    CkXml::setCkEmitXmlDecl(xml, 0)
    soapRequestBody.s = CkXml::ckGetXml(xml)

    endpoint.s = "https://service.checkpoint.rs/service.asmx"
    soapAction.s = "service.checkpoint.rs/VratiSubjekt"
    ;  For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"
    contentType.s = "text/xml"

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttp::ckClearHeaders(http)
    CkHttp::ckSetRequestHeader(http,"Content-Type",contentType)
    CkHttp::ckSetRequestHeader(http,"SOAPAction",soapAction)

    resp.i = CkHttp::ckPostXml(http,endpoint,soapRequestBody,"utf-8")
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        Debug "Failed to send SOAP request."
        CkXml::ckDispose(xml)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    ; Get the XML response body.
    responseXml.i = CkXml::ckCreate()
    If responseXml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpResponse::ckGetBodyXml(resp,responseXml)

    statusCode.i = CkHttpResponse::ckStatusCode(resp)
    Debug "response status code: " + Str(statusCode)

    CkHttpResponse::ckDispose(resp)

    ; If the status code does not indicate succcess, then show the response XML,
    ; which probably contains error information.
    If statusCode <> 200
        Debug CkXml::ckGetXml(responseXml)
        CkXml::ckDispose(xml)
        CkHttp::ckDispose(http)
        CkXml::ckDispose(responseXml)
        ProcedureReturn
    EndIf

    Debug CkXml::ckGetXml(responseXml)

    ; Parse the successful SOAP response XML.

    ; This is a sample of the response XML, but the namespace prefixes will be different.
    ; We can parse the result using "*" for the namespace prefixes (see below).

    ID.i = CkXml::ckGetChildIntValue(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:ID")
    MBR.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:MBR")
    PIB.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:PIB")
    Naziv_skraceni.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Naziv_skraceni")
    Naziv.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Naziv")
    Adresa.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Adresa")
    Mesto.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Mesto")
    Opstina.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Opstina")
    Status_APR.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Status_APR")
    Jbkjs.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Jbkjs")
    Postanski_broj.s = CkXml::ckGetChildContent(responseXml,"*:Body|*:VratiSubjektResponse|*:VratiSubjektResult|*:SubjektPretraga|*:Postanski_broj")


    CkXml::ckDispose(xml)
    CkHttp::ckDispose(http)
    CkXml::ckDispose(responseXml)


    ProcedureReturn
EndProcedure
Request XML
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="service.checkpoint.rs">
    <soap:Header/>
    <soap:Body>
        <ser:VratiSubjekt>
            <ser:mbr>string</ser:mbr>
            <ser:pib>string</ser:pib>
            <ser:naziv>string</ser:naziv>
            <ser:token>string</ser:token>
        </ser:VratiSubjekt>
    </soap:Body>
</soap:Envelope>
Response XML
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="service.checkpoint.rs">
    <soap:Header/>
    <soap:Body>
        <ser:VratiSubjektResponse>
            <ser:VratiSubjektResult>
                <ser:SubjektPretraga>
                    <ser:ID>1042</ser:ID>
                    <ser:MBR>string</ser:MBR>
                    <ser:PIB>string</ser:PIB>
                    <ser:Naziv_skraceni>string</ser:Naziv_skraceni>
                    <ser:Naziv>string</ser:Naziv>
                    <ser:Adresa>string</ser:Adresa>
                    <ser:Mesto>string</ser:Mesto>
                    <ser:Opstina>string</ser:Opstina>
                    <ser:Status_APR>string</ser:Status_APR>
                    <ser:Jbkjs>string</ser:Jbkjs>
                    <ser:Postanski_broj>string</ser:Postanski_broj>
                </ser:SubjektPretraga>
            </ser:VratiSubjektResult>
        </ser:VratiSubjektResponse>
    </soap:Body>
</soap:Envelope>