Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

WebDAV PROPFIND

See more HTTP Examples

Demonstrates how to send a WebDAV PROPFIND HTTP request.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final req = CkHttpRequest();
  final http = CkHttp();

  // 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.httpVerb = 'PROPFIND';

  // The Content-Type should be "application/xml", and
  // the charset attribute in the Content-Type header should
  // be utf-8:
  req.contentType = 'application/xml';
  req.charset = 'utf-8';
  req.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:
  final xmlBody = 'This is the string that should contain the XML body...';
  try {
    req.loadBodyFromString(xmlBody, 'utf-8');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    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 HttpSReq method:

  final resp = CkHttpResponse();
  try {
    http.httpSReq('webdav.chilkatstorage.com', 443, true, req, resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Get the XML response:
  final responseXml = resp.bodyStr;
  print('XML Response: $responseXml');

  // Get the response status code, such as 207
  final statusCode = resp.statusCode;
  print('StatusCode = $statusCode');
}