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
(SQL Server) WebDAV PROPFINDDemonstrates how to send a WebDAV PROPFIND HTTP request.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @req int -- Use "Chilkat_9_5_0.HttpRequest" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT DECLARE @success int -- 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 <> 1 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 SynchronousRequest method: DECLARE @resp int EXEC sp_OAMethod @http, 'SynchronousRequest', @resp OUT, 'webdav.chilkatstorage.com', 443, 1, @req EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 = 0 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http 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 @resp EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.