![]() |
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
(SQL Server) WebDAV PROPFINDDemonstrates how to send a WebDAV PROPFIND HTTP request. Note: This example requires Chilkat v11.0.0 or greater.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) DECLARE @success int SELECT @success = 0 -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @req int EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @http int EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT -- 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" EXEC sp_OASetProperty @req, 'HttpVerb', 'PROPFIND' -- The Content-Type should be "application/xml", and -- the charset attribute in the Content-Type header should -- be utf-8: EXEC sp_OASetProperty @req, 'ContentType', 'application/xml' EXEC sp_OASetProperty @req, 'Charset', 'utf-8' EXEC sp_OASetProperty @req, 'SendCharset', 1 -- 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: DECLARE @xmlBody nvarchar(4000) SELECT @xmlBody = 'This is the string that should contain the XML body...' EXEC sp_OAMethod @req, 'LoadBodyFromString', @success OUT, @xmlBody, 'utf-8' IF @success = 0 BEGIN EXEC sp_OAGetProperty @req, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http RETURN 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 HttpSReq method: DECLARE @resp int EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT EXEC sp_OAMethod @http, 'HttpSReq', @success OUT, 'webdav.chilkatstorage.com', 443, 1, @req, @resp IF @success = 0 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @resp RETURN END -- Get the XML response: DECLARE @responseXml nvarchar(4000) EXEC sp_OAGetProperty @resp, 'BodyStr', @responseXml OUT PRINT 'XML Response: ' + @responseXml -- Get the response status code, such as 207 DECLARE @statusCode int EXEC sp_OAGetProperty @resp, 'StatusCode', @statusCode OUT PRINT 'StatusCode = ' + @statusCode EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @resp END GO |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.