SQL Server
SQL Server
Persist Cookies to XML Files and Auto Re-Send
See more HTTP Examples
Demonstrates how to persist incoming cookies to XML files and automatically re-send in subsesquent HTTP requests.Chilkat SQL Server Downloads
-- 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)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- To save cookies to XML files (per domain) in a specific
-- directory, set the CookieDir property (the directory must
-- already exist and be writeable by the caller). Also,
-- set the SaveCookies property:
EXEC sp_OASetProperty @http, 'CookieDir', '/cookieDir'
EXEC sp_OASetProperty @http, 'SaveCookies', 1
-- Any methods that do a GET, POST, etc. will save cookies
-- to the CookieDir:
DECLARE @html nvarchar(4000)
EXEC sp_OAMethod @http, 'QuickGetStr', @html OUT, 'https://www.paypal.com/'
-- After running this code, a "paypal_com.xml" file should appear
-- in /cookieDir.
-- It's content will look something like this:
-- <cookies>
-- <cookie key=".paypal.com,/" v="0" secure="yes">
-- <navcmd>_home-general</navcmd>
-- <HttpOnly />
-- <cwrClyrK4LoCV1fydGbAxiNL6iG>9cz...</cwrClyrK4LoCV1fydGbAxiNL6iG>
-- </cookie>
-- </cookies>
-- To cause cached cookies to be sent with
-- subsequent HTTP requests, set the SendCookies
-- property = 1.
EXEC sp_OASetProperty @http, 'SendCookies', 1
-- If another HTTP request is sent, the cookies should
-- be added:
EXEC sp_OAMethod @http, 'QuickGetStr', @html OUT, 'https://www.paypal.com/'
-- Check the LastHeader property to see the MIME header
-- of the last HTTP request sent.
-- The "Cookie" header field should be present.
PRINT '--- LastHeader ---'
EXEC sp_OAGetProperty @http, 'LastHeader', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
END
GO