#include <CkXml.h>
#include <CkHttp.h>
#include <CkHttpResponse.h>
void ChilkatSample(void)
{
CkXml xml;
xml.put_Tag("soapenv:Envelope");
xml.AddAttribute("xmlns:soapenv","http://schemas.xmlsoap.org/soap/envelope/");
xml.AddAttribute("xmlns:dpd","http://dpdservices.dpd.com.pl/");
xml.UpdateChildContent("soapenv:Header","");
xml.UpdateChildContentInt("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:checkSum",1042);
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:operationType","INSERT");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:orderNumber","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:orderType","DOMESTIC");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:dox","true");
xml.UpdateChildContentInt("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:doxCount",1042);
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:pallet","true");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:palletMaxHeight","456.00");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:palletMaxWeight","456.00");
xml.UpdateChildContentInt("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:palletsCount",1042);
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:palletsWeight","456.00");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:parcelMaxDepth","456.00");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:parcelMaxHeight","456.00");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:parcelMaxWeight","456.00");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:parcelMaxWidth","456.00");
xml.UpdateChildContentInt("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:parcelsCount",1042);
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:parcelsWeight","456.00");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:packagesParams|dpd:standardParcel","true");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupCustomer|dpd:customerFullName","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupCustomer|dpd:customerName","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupCustomer|dpd:customerPhone","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupPayer|dpd:payerCostCenter","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupPayer|dpd:payerName","string");
xml.UpdateChildContentInt("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupPayer|dpd:payerNumber",1042);
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupSender|dpd:senderAddress","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupSender|dpd:senderCity","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupSender|dpd:senderFullName","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupSender|dpd:senderName","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupSender|dpd:senderPhone","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupCallSimplifiedDetails|dpd:pickupSender|dpd:senderPostalCode","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupDate","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupTimeFrom","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:pickupTimeTo","string");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:updateMode","DONT_CREATE_NEW_IF_CLOSED");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:dpdPickupParamsV3|dpd:waybillsReady","true");
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:authDataV1|dpd:login","string");
xml.UpdateChildContentInt("soapenv:Body|dpd:packagesPickupCallV3|dpd:authDataV1|dpd:masterFid",1042);
xml.UpdateChildContent("soapenv:Body|dpd:packagesPickupCallV3|dpd:authDataV1|dpd:password","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.
xml.put_EmitXmlDecl(false);
const char *soapRequestBody = xml.getXml();
const char *endpoint = "https://dpdservicesdemo.dpd.com.pl/DPDPackageObjServicesService/DPDPackageObjServices";
const char *soapAction = "";
// For SOAP requests, the standard Content-Type is usually set to "text/xml" or "application/soap+xml"const char *contentType = "text/xml";
CkHttp http;
http.ClearHeaders();
http.SetRequestHeader("Content-Type",contentType);
http.SetRequestHeader("SOAPAction",soapAction);
CkHttpResponse *resp = http.PostXml(endpoint,soapRequestBody,"utf-8");
if (http.get_LastMethodSuccess() == false) {
std::cout << http.lastErrorText() << "\r\n";
std::cout << "Failed to send SOAP request." << "\r\n";
return;
}
// Get the XML response body.CkXml responseXml;
resp->GetBodyXml(responseXml);
int statusCode = resp->get_StatusCode();
std::cout << "response status code: " << statusCode << "\r\n";
delete resp;
// If the status code does not indicate succcess, then show the response XML,
// which probably contains error information.if (statusCode != 200) {
std::cout << responseXml.getXml() << "\r\n";
return;
}
std::cout << responseXml.getXml() << "\r\n";
// 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).int checkSum = responseXml.GetChildIntValue("*:Body|*:packagesPickupCallV3Response|*:return|*:checkSum");
const char *orderNumber = responseXml.getChildContent("*:Body|*:packagesPickupCallV3Response|*:return|*:orderNumber");
const char *code = responseXml.getChildContent("*:Body|*:packagesPickupCallV3Response|*:return|*:statusInfo|*:errorDetails|*:code");
const char *description = responseXml.getChildContent("*:Body|*:packagesPickupCallV3Response|*:return|*:statusInfo|*:errorDetails|*:description");
const char *fields = responseXml.getChildContent("*:Body|*:packagesPickupCallV3Response|*:return|*:statusInfo|*:errorDetails|*:fields");
const char *status = responseXml.getChildContent("*:Body|*:packagesPickupCallV3Response|*:return|*:statusInfo|*:status");
}