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
(PowerBuilder) Parse Multipart Binary Http ResponseThis example demonstrates how to parse an HTTP response that is multipart and contains a binary file, such as a .zip or .pdf.
integer li_rc integer li_Success oleobject loo_Http oleobject loo_Req oleobject loo_Resp oleobject loo_RespBody oleobject loo_Mime integer li_NumParts oleobject loo_Part0 string ls_XmlStr oleobject loo_Part1 oleobject loo_ZipData // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Http = create oleobject // Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 li_rc = loo_Http.ConnectToNewObject("Chilkat.Http") if li_rc < 0 then destroy loo_Http MessageBox("Error","Connecting to COM object failed") return end if loo_Req = create oleobject // Use "Chilkat_9_5_0.HttpRequest" for versions of Chilkat < 10.0.0 li_rc = loo_Req.ConnectToNewObject("Chilkat.HttpRequest") // ... // Insert code here to construct some kind of HTTP request. // this example is to show how to parse a particular kind of response. // ... // ... // Send the request (whatever it may be in your case) to get the HTTP response object. loo_Resp = loo_Http.SynchronousRequest("www.somedomain.com",443,1,loo_Req) if loo_Http.LastMethodSuccess <> 1 then Write-Debug loo_Http.LastErrorText destroy loo_Http destroy loo_Req return end if // Get the response body (which is expected to be binary) loo_RespBody = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_RespBody.ConnectToNewObject("Chilkat.BinData") loo_Resp.GetBodyBd(loo_RespBody) destroy loo_Resp // For this example, the response body contains something like this: // ------=_Part_21302_2029949381.1547401515443 // Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" // Content-Transfer-Encoding: 8bit // Content-ID: <rootpart@ws.jboss.org> // // <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:Header></env:Header><env:Body>...</env:Body></env:Envelope> // ------=_Part_21302_2029949381.1547401515443 // Content-Type: application/octet-stream // Content-Transfer-Encoding: binary // Content-Id: <fileArchivio-7d302908-4d64-43d3-bf4e-79ce806d43b3@ws.jboss.org> // // BINARY_CONTENT_HERE... // // ------=_Part_21302_2029949381.1547401515443-- // // Load it into a Chilkat MIME object. loo_Mime = create oleobject // Use "Chilkat_9_5_0.Mime" for versions of Chilkat < 10.0.0 li_rc = loo_Mime.ConnectToNewObject("Chilkat.Mime") li_Success = loo_Mime.LoadMimeBd(loo_RespBody) if li_Success <> 1 then Write-Debug loo_Mime.LastErrorText destroy loo_Http destroy loo_Req destroy loo_RespBody destroy loo_Mime return end if li_NumParts = loo_Mime.NumParts if li_NumParts < 2 then Write-Debug "Expected multipart MIME with at least 2 sub-parts." destroy loo_Http destroy loo_Req destroy loo_RespBody destroy loo_Mime return end if // Get the 1st sub-part, which is the XML. loo_Part0 = loo_Mime.GetPart(0) // Should be OK because we checked NumParts above.. ls_XmlStr = loo_Part0.GetBodyDecoded() Write-Debug ls_XmlStr Write-Debug "----" destroy loo_Part0 // Save the 2nd part to a file. (It is a .zip file in our test case..) loo_Part1 = loo_Mime.GetPart(1) li_Success = loo_Part1.SaveBody("qa_output/attachedZip.zip") // Alternatively, we could extract the binary data to a BinData and use elsewhere.. loo_ZipData = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_ZipData.ConnectToNewObject("Chilkat.BinData") li_Success = loo_Part1.GetBodyBd(loo_ZipData) li_Success = loo_ZipData.WriteFile("qa_output/attachedZip_again.zip") destroy loo_Part1 Write-Debug "OK." destroy loo_Http destroy loo_Req destroy loo_RespBody destroy loo_Mime destroy loo_ZipData |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.