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
(Delphi DLL) 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
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, HttpResponse, Xml; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; success: Boolean; xml: HCkXml; sbRequestBody: HCkStringBuilder; resp: HCkHttpResponse; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_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 := CkXml_Create(); CkXml_putTag(xml,'soap:Envelope'); CkXml_AddAttribute(xml,'xmlns:soap','http://www.w3.org/2003/05/soap-envelope/'); CkXml_AddAttribute(xml,'soap:encodingStyle','http://www.w3.org/2003/05/soap-encoding'); CkXml_UpdateAttrAt(xml,'soap:Body',True,'xmlns:m','http://www.example.org/stock'); CkXml_UpdateChildContent(xml,'soap:Body|m:GetStockPrice|m:StockName','IBM'); CkHttp_SetRequestHeader(http,'SOAPAction','http://www.example.org/StockPrice'); CkHttp_SetRequestHeader(http,'Host','www.example.org'); CkHttp_SetRequestHeader(http,'Content-Type','application/soap+xml; charset=utf-8'); sbRequestBody := CkStringBuilder_Create(); CkXml_GetXmlSb(xml,sbRequestBody); resp := CkHttp_PTextSb(http,'POST','https://example.com/StockQuote',sbRequestBody,'utf-8','application/soap+xml; charset=utf-8',False,False); if (CkHttp_getLastMethodSuccess(http) = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; Memo1.Lines.Add(IntToStr(CkHttpResponse_getStatusCode(resp))); Memo1.Lines.Add(CkHttpResponse__bodyStr(resp)); CkHttpResponse_Dispose(resp); CkHttp_Dispose(http); CkXml_Dispose(xml); CkStringBuilder_Dispose(sbRequestBody); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.