Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) WebDAV PROPFINDDemonstrates how to send a WebDAV PROPFIND HTTP request.
#include <CkHttpRequest.h> #include <CkHttp.h> #include <CkHttpResponse.h> void ChilkatSample(void) { CkString strOut; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkHttpRequest req; CkHttp http; bool success; // The PROPFIND request to be sent will look similar to this: // This is from RFC 4918 at http://tools.ietf.org/html/rfc4918#section-9.1.3 // PROPFIND /file HTTP/1.1 // Host: www.example.com // Content-type: application/xml; charset="utf-8" // Content-Length: xxxx // // <?xml version="1.0" encoding="utf-8" ?> // <D:propfind xmlns:D="DAV:"> // <D:prop xmlns:R="http://ns.example.com/boxschema/"> // <R:bigbox/> // <R:author/> // <R:DingALing/> // <R:Random/> // </D:prop> // </D:propfind> // Build the HTTP request object. // The HTTP verb should be "PROPFIND" req.put_HttpVerb("PROPFIND"); // The Content-Type should be "application/xml", and // the charset attribute in the Content-Type header should // be utf-8: req.put_ContentType("application/xml"); req.put_Charset("utf-8"); req.put_SendCharset(true); // Load the request body with the XML. Your application // is free to construct the XML using any means desired. // Once the XML is prepared, load it into the request body // like this: const char *xmlBody = "This is the string that should contain the XML body..."; success = req.LoadBodyFromString(xmlBody,"utf-8"); if (success != true) { strOut.append(req.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // For this example, pretend the WEBDAV endpoint is: // https://webdav.chilkatstorage.com/ // Note: There is no actual "chilkatstorage.com" site. // This is only an example... // The "path" part of this endpoint URL is simply "/". // Send the request to the WebDAV endpoint using // the SynchronousRequest method: CkHttpResponse *resp = 0; resp = http.SynchronousRequest("webdav.chilkatstorage.com",443,true,req); if (http.get_LastMethodSuccess() == false) { strOut.append(http.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Get the XML response: const char *responseXml = 0; responseXml = resp->bodyStr(); strOut.append("XML Response: "); strOut.append(responseXml); strOut.append("\r\n"); // Get the response status code, such as 207 int statusCode; statusCode = resp->get_StatusCode(); strOut.append("StatusCode = "); strOut.appendInt(statusCode); strOut.append("\r\n"); delete resp; SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.