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
(Swift 3,4,5...) 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.
func chilkatTest() { // 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-- let http = CkoHttp()! let req = CkoHttpRequest()! req.httpVerb = "POST" req.path = "/FseInsServicesWeb/services/fseComunicazioneMetadati" // Chilkat will automatically generate and add a boundary string. req.contentType = "multipart/related; type=\"application/xop+xml\"; start=\"<rootpart@soapui.org>\"; start-info=\"text/xml\"" req.addHeader("SOAPAction", value: "some-SOAP-action") req.addHeader("Connection", value: "Keep-Alive") req.addHeader("Accept-Encoding", value: "gzip,deflate") req.addHeader("MIME-Version", value: "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: http.login = "..." http.password = "..." http.basicAuth = true // Add the 1st multipart/related sub-part, which is the SOAP envelope. var xmlBody: String? = "<soapenv:Envelope ...." var success: Bool = req.addString(forUpload2: "", filename: "", strData: xmlBody, charset: "utf-8", contentType: "application/xop+xml; type=\"text/xml\"; charset=utf-8") // Additional headers for the 1st sub-part success = req.addSubHeader(0, name: "Content-ID", value: "<rootpart@soapui.org>") success = req.addSubHeader(0, name: "Content-Transfer-Encoding", value: "8bit") success = req.addSubHeader(0, name: "Content-Disposition", value: "") // Add the 2nd multipart/related sub-part, which is the signed XML var xmlBody2: String? = "<!-- INSERIRE IL RIFERIMENT ...." success = req.addString(forUpload2: "CDA2LAB_190_signed.xml", filename: "", strData: xmlBody2, charset: "Cp1252", contentType: "text/xml; charset=Cp1252") // Additional headers for the 2nd sub-part. success = req.addSubHeader(1, name: "Content-ID", value: "<CDA2LAB_190_signed.xml>") success = req.addSubHeader(1, name: "Content-Transfer-Encoding", value: "quoted-printable") success = req.addSubHeader(1, name: "Content-Disposition", value: "attachment; name=\"CDA2LAB_190_signed.xml\"") http.followRedirects = true var useTls: Bool = true var resp: CkoHttpResponse? = http.synchronousRequest("fseservicetest.sanita.finanze.it", port: 443, ssl: useTls, req: req) if http.lastMethodSuccess != true { print("\(http.lastErrorText!)") return } let xmlResponse = CkoXml()! success = xmlResponse.load(resp!.bodyStr) print("\(xmlResponse.getXml()!)") resp = nil } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.