SQL Server
SQL Server
Socket Convenience Method: BuildHttpGetRequest
See more Socket/SSL/TLS Examples
Demonstrates the BuildHttpGetRequest method.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
-- The BuildHttpGetRequest method is a convenience method for building
-- an HTTP GET request. Normally, an application would use Chilkat's HTTP or REST API's
-- for sending HTTP requests.
DECLARE @socket int
EXEC @hr = sp_OACreate 'Chilkat.Socket', @socket OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @url nvarchar(4000)
SELECT @url = 'http://www.chilkatsoft.com/test.asp?x=123&y=456'
DECLARE @reqStr nvarchar(4000)
EXEC sp_OAMethod @socket, 'BuildHttpGetRequest', @reqStr OUT, @url
PRINT @reqStr
PRINT '----'
-- The result is:
-- GET /test.asp?x=123&y=456 HTTP/1.1
-- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-- Connection: keep-alive
-- User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
-- Accept-Language: en-us,en;q=0.5
-- Host: www.chilkatsoft.com
-- The result is meant to look like a request from a browser.
-- The same thing can be done using the Url and HttpRequest classes, but with more flexibility.
DECLARE @req int
EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT
EXEC sp_OAMethod @req, 'SetFromUrl', NULL, @url
EXEC sp_OAMethod @req, 'GenerateRequestText', @reqStr OUT
PRINT @reqStr
PRINT '----'
-- The result is:
-- GET /test.asp?x=123&y=456 HTTP/1.1
-- Host: domain
-- Add some headers..
EXEC sp_OAMethod @req, 'AddHeader', NULL, 'Host', 'www.chilkatsoft.com'
EXEC sp_OAMethod @req, 'AddHeader', NULL, 'Accept-Language', 'en-us,en;q=0.5'
EXEC sp_OAMethod @req, 'AddHeader', NULL, 'Some-Other-Header', '123456'
EXEC sp_OAMethod @req, 'GenerateRequestText', @reqStr OUT
PRINT @reqStr
-- The result is now:
-- GET /test.asp?x=123&y=456 HTTP/1.1
-- Host: www.chilkatsoft.com
-- Accept-Language: en-us,en;q=0.5
-- Some-Other-Header: 123456
EXEC @hr = sp_OADestroy @socket
EXEC @hr = sp_OADestroy @req
END
GO