DataFlex
DataFlex
HTTP Verb - How to use any Verb (GET, PUT, POST, DELETE, PROPFIND, etc.)
The HttpVerb property may be set to anything. Typically, it is set to the common/standard HTTP verbs such as GET, POST, PUT, DELETE, etc. It can be set to anything, including custom verbs that only have meaning to your particular server-side application.This example demonstrates how to compose an HTTP request using the PROPFIND verb, which is something one might use with a WebDAV request.
This example composes the following HTTP request:
PROPFIND /container/ HTTP/1.1
Host: www.foo.bar
Depth: 1
Content-Type: text/xml; charset="utf-8"
Content-Length: xxxx
<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:allprop/>
</D:propfind>
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoReq
Handle hoXml
Boolean iSuccess
String sRequestMime
String sTemp1
Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
If (Not(IsComObjectCreated(hoReq))) Begin
Send CreateComObject of hoReq
End
// The ContentType, HttpVerb, and Path properties should
// always be explicitly set.
Set ComHttpVerb Of hoReq To "PROPFIND"
Set ComPath Of hoReq To "/container/"
Set ComContentType Of hoReq To "text/xml"
Set ComCharset Of hoReq To "utf-8"
Set ComSendCharset Of hoReq To True
Send ComAddHeader To hoReq "Depth" "1"
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Set ComTag Of hoXml To "propfind"
Get ComAddAttribute Of hoXml "xmlns:D" "DAV:" To iSuccess
Send ComNewChild2 To hoXml "allprop" ""
Get ComGetXml Of hoXml To sTemp1
Get ComLoadBodyFromString Of hoReq sTemp1 "utf-8" To iSuccess
// View the request that would be sent if HttpSReq was called:
Get ComGenerateRequestText Of hoReq To sRequestMime
Showln sRequestMime
// A few important comments about the HTTP request that is generated:
//
// 1) The Content-Length header is automatically generated based on the actual length of the MIME message
// that follows the intial (topmost) MIME header.
// 2) The HOST header will automatically get filled in with the actual domain when HttpSReq
// is called
End_Procedure