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) Another SOAP with MTOM XOP Attachment ExampleSee more HTTP ExamplesDemonstrates another multipart/related MTOM SOAP request that adds additional headers in each MIME sub-part, and also specifies Content-Transfer-Encoding in the sub-parts. Note: This example requires Chilkat v9.5.0.92 or greater.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpRequest, Xml, HttpResponse; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; req: HCkHttpRequest; xmlBody: PWideChar; success: Boolean; xmlBody2: PWideChar; useTls: Boolean; resp: HCkHttpResponse; xmlResponse: HCkXml; begin // Note: This example requires Chilkat v9.5.0.92 or greater. // This example sends a request such as the following: // POST /FseInsServicesWeb/services/fseComunicazioneMetadati HTTP/1.1 // Connection: Keep-Alive // Content-Length: 50649 // Content-Type: multipart/related; type="application/xop+xml"; start="<rootpart@soapui.org>"; start-info="text/xml"; boundary="----=_Part_0_355796458.1662133302632" // Accept-Encoding: gzip,deflate // Authorization: Basic xxxxx // Host: ... // SOAPAction: "http://comunicazionemetadati.wsdl.fse.ini.finanze.it/ComunicazioneMetadati" // MIME-Version: 1.0 // // ------=_Part_0_355796458.1662133302632 // Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" // Content-Transfer-Encoding: 8bit // Content-ID: <rootpart@soapui.org> // // <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://comunicazionemetadatirichiesta.xsd.fse.ini.finanze.it" xmlns:tip="http://tipodaticomunicazionemetadati.xsd.fse.ini.finanze.it"> // <soapenv:Header/> // ... // // ------=_Part_0_355796458.1662133302632 // Content-Type: text/xml; charset=Cp1252 // Content-Transfer-Encoding: quoted-printable // Content-ID: <CDA2LAB_190_signed.xml> // Content-Disposition: attachment; name="CDA2LAB_190_signed.xml" // // <!-- INSERIRE IL RIFERIMENTO AL FOGLIO DI STILE DI AGID OPPURE INSERIRNE UN= // ... // // ------=_Part_0_355796458.1662133302632-- http := CkHttp_Create(); req := CkHttpRequest_Create(); CkHttpRequest_putHttpVerb(req,'POST'); CkHttpRequest_putPath(req,'/FseInsServicesWeb/services/fseComunicazioneMetadati'); // Chilkat will automatically generate and add a boundary string. CkHttpRequest_putContentType(req,'multipart/related; type="application/xop+xml"; start="<rootpart@soapui.org>"; start-info="text/xml"'); CkHttpRequest_AddHeader(req,'SOAPAction','some-SOAP-action'); CkHttpRequest_AddHeader(req,'Connection','Keep-Alive'); CkHttpRequest_AddHeader(req,'Accept-Encoding','gzip,deflate'); CkHttpRequest_AddHeader(req,'MIME-Version','1.0'); // Chilkat will automatically add the Content-Length and Host headers. // The "Authorization: Basic ..." header is added by setting the Login and Password and specifying Basic authentication: CkHttp_putLogin(http,'...'); CkHttp_putPassword(http,'...'); CkHttp_putBasicAuth(http,True); // Add the 1st multipart/related sub-part, which is the SOAP envelope. xmlBody := '<soapenv:Envelope ....'; success := CkHttpRequest_AddStringForUpload2(req,'','',xmlBody,'utf-8','application/xop+xml; type="text/xml"; charset=utf-8'); // Additional headers for the 1st sub-part success := CkHttpRequest_AddSubHeader(req,0,'Content-ID','<rootpart@soapui.org>'); success := CkHttpRequest_AddSubHeader(req,0,'Content-Transfer-Encoding','8bit'); success := CkHttpRequest_AddSubHeader(req,0,'Content-Disposition',''); // Add the 2nd multipart/related sub-part, which is the signed XML xmlBody2 := '<!-- INSERIRE IL RIFERIMENT ....'; success := CkHttpRequest_AddStringForUpload2(req,'CDA2LAB_190_signed.xml','',xmlBody2,'Cp1252','text/xml; charset=Cp1252'); // Additional headers for the 2nd sub-part. success := CkHttpRequest_AddSubHeader(req,1,'Content-ID','<CDA2LAB_190_signed.xml>'); success := CkHttpRequest_AddSubHeader(req,1,'Content-Transfer-Encoding','quoted-printable'); success := CkHttpRequest_AddSubHeader(req,1,'Content-Disposition','attachment; name="CDA2LAB_190_signed.xml"'); CkHttp_putFollowRedirects(http,True); useTls := True; resp := CkHttp_SynchronousRequest(http,'fseservicetest.sanita.finanze.it',443,useTls,req); if (CkHttp_getLastMethodSuccess(http) <> True) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; xmlResponse := CkXml_Create(); success := CkXml_LoadXml(xmlResponse,CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add(CkXml__getXml(xmlResponse)); CkHttpResponse_Dispose(resp); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkXml_Dispose(xmlResponse); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.