Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) HTTP POST with XML BodyDemonstrates sending an HTTP POST with a XML body. For more information, see https://chilkatsoft.com/http_post_with_xml_body.asp
#include <C_CkHttpW.h> #include <C_CkXmlW.h> #include <C_CkStringBuilderW.h> #include <C_CkHttpResponseW.h> void ChilkatSample(void) { HCkHttpW http; BOOL success; HCkXmlW xml; HCkStringBuilderW sbRequestBody; HCkHttpResponseW resp; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttpW_Create(); // Implements the following CURL command: // curl -X POST https://example.com/StockQuote \ // -H "Host: www.example.org" \ // -H "Content-Type: application/soap+xml; charset=utf-8" \ // -H "SOAPAction: http://www.example.org/StockPrice" \ // -d '<?xml version="1.0"?> // // <soap:Envelope // xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" // soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> // // <soap:Body xmlns:m="http://www.example.org/stock"> // <m:GetStockPrice> // <m:StockName>IBM</m:StockName> // </m:GetStockPrice> // </soap:Body> // // </soap:Envelope>' // Use the following online tool to generate HTTP code from a CURL command // Convert a cURL Command to HTTP Source Code // Use this online tool to generate code from sample XML: // Generate Code to Create XML // -------------------------------------------------------------------------------- // Also see Chilkat's Online WSDL Code Generator // to generate code and SOAP Request and Response XML for each operation in a WSDL. // -------------------------------------------------------------------------------- // The following XML is sent in the request body. // <?xml version="1.0" encoding="utf-8"?> // <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/" soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> // <soap:Body xmlns:m="http://www.example.org/stock"> // <m:GetStockPrice> // <m:StockName>IBM</m:StockName> // </m:GetStockPrice> // </soap:Body> // </soap:Envelope> // xml = CkXmlW_Create(); CkXmlW_putTag(xml,L"soap:Envelope"); CkXmlW_AddAttribute(xml,L"xmlns:soap",L"http://www.w3.org/2003/05/soap-envelope/"); CkXmlW_AddAttribute(xml,L"soap:encodingStyle",L"http://www.w3.org/2003/05/soap-encoding"); CkXmlW_UpdateAttrAt(xml,L"soap:Body",TRUE,L"xmlns:m",L"http://www.example.org/stock"); CkXmlW_UpdateChildContent(xml,L"soap:Body|m:GetStockPrice|m:StockName",L"IBM"); CkHttpW_SetRequestHeader(http,L"SOAPAction",L"http://www.example.org/StockPrice"); CkHttpW_SetRequestHeader(http,L"Host",L"www.example.org"); CkHttpW_SetRequestHeader(http,L"Content-Type",L"application/soap+xml; charset=utf-8"); sbRequestBody = CkStringBuilderW_Create(); CkXmlW_GetXmlSb(xml,sbRequestBody); resp = CkHttpW_PTextSb(http,L"POST",L"https://example.com/StockQuote",sbRequestBody,L"utf-8",L"application/soap+xml; charset=utf-8",FALSE,FALSE); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkXmlW_Dispose(xml); CkStringBuilderW_Dispose(sbRequestBody); return; } wprintf(L"%d\n",CkHttpResponseW_getStatusCode(resp)); wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp)); CkHttpResponseW_Dispose(resp); CkHttpW_Dispose(http); CkXmlW_Dispose(xml); CkStringBuilderW_Dispose(sbRequestBody); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.