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) WebDAV PROPFINDDemonstrates how to send a WebDAV PROPFIND HTTP request.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpRequest, HttpResponse; ... procedure TForm1.Button1Click(Sender: TObject); var req: HCkHttpRequest; http: HCkHttp; success: Boolean; xmlBody: PWideChar; resp: HCkHttpResponse; responseXml: PWideChar; statusCode: Integer; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. req := CkHttpRequest_Create(); http := CkHttp_Create(); // 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" CkHttpRequest_putHttpVerb(req,'PROPFIND'); // The Content-Type should be "application/xml", and // the charset attribute in the Content-Type header should // be utf-8: CkHttpRequest_putContentType(req,'application/xml'); CkHttpRequest_putCharset(req,'utf-8'); CkHttpRequest_putSendCharset(req,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: xmlBody := 'This is the string that should contain the XML body...'; success := CkHttpRequest_LoadBodyFromString(req,xmlBody,'utf-8'); if (success <> True) then begin Memo1.Lines.Add(CkHttpRequest__lastErrorText(req)); Exit; end; // 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: resp := CkHttp_SynchronousRequest(http,'webdav.chilkatstorage.com',443,True,req); if (CkHttp_getLastMethodSuccess(http) = False) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; // Get the XML response: responseXml := CkHttpResponse__bodyStr(resp); Memo1.Lines.Add('XML Response: ' + responseXml); // Get the response status code, such as 207 statusCode := CkHttpResponse_getStatusCode(resp); Memo1.Lines.Add('StatusCode = ' + IntToStr(statusCode)); CkHttpResponse_Dispose(resp); CkHttpRequest_Dispose(req); CkHttp_Dispose(http); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.