|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Visual FoxPro) 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. Note: This example requires Chilkat v11.0.0 or greater. 
 LOCAL lnSuccess LOCAL loHttp LOCAL loReq LOCAL loResp LOCAL loRespBody LOCAL loMime LOCAL lnNumParts LOCAL loPart0 LOCAL lcXmlStr LOCAL loPart1 LOCAL loZipData lnSuccess = 0 * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. loHttp = CreateObject('Chilkat.Http') loReq = CreateObject('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. loResp = CreateObject('Chilkat.HttpResponse') lnSuccess = loHttp.HttpSReq("www.somedomain.com",443,1,loReq,loResp) IF (lnSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loReq RELEASE loResp CANCEL ENDIF * Get the response body (which is expected to be binary) loRespBody = CreateObject('Chilkat.BinData') loResp.GetBodyBd(loRespBody) * 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. loMime = CreateObject('Chilkat.Mime') lnSuccess = loMime.LoadMimeBd(loRespBody) IF (lnSuccess = 0) THEN ? loMime.LastErrorText RELEASE loHttp RELEASE loReq RELEASE loResp RELEASE loRespBody RELEASE loMime CANCEL ENDIF lnNumParts = loMime.NumParts IF (lnNumParts < 2) THEN ? "Expected multipart MIME with at least 2 sub-parts." RELEASE loHttp RELEASE loReq RELEASE loResp RELEASE loRespBody RELEASE loMime CANCEL ENDIF * Get the 1st sub-part, which is the XML. loPart0 = CreateObject('Chilkat.Mime') loMime.PartAt(0,loPart0) * Should be OK because we checked NumParts above.. lcXmlStr = loPart0.GetBodyDecoded() ? lcXmlStr ? "----" * Save the 2nd part to a file. (It is a .zip file in our test case..) loPart1 = CreateObject('Chilkat.Mime') loMime.PartAt(1,loPart1) lnSuccess = loPart1.SaveBody("qa_output/attachedZip.zip") * Alternatively, we could extract the binary data to a BinData and use elsewhere.. loZipData = CreateObject('Chilkat.BinData') lnSuccess = loPart1.GetBodyBd(loZipData) lnSuccess = loZipData.WriteFile("qa_output/attachedZip_again.zip") ? "OK." RELEASE loHttp RELEASE loReq RELEASE loResp RELEASE loRespBody RELEASE loMime RELEASE loPart0 RELEASE loPart1 RELEASE loZipData | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.