SQL Server
SQL Server
Demonstrates the Http.QuickRequestParams Method
See more HTTP Examples
Demonstrates how to use the Http.QuickRequestParams method. This is where query params can be provided non-URL-encoded in JSON format.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)
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 @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Demonstrate sending a GET request with query parameters.
DECLARE @queryParams int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @queryParams OUT
EXEC sp_OAMethod @queryParams, 'UpdateInt', @success OUT, 'limit', 100
EXEC sp_OAMethod @queryParams, 'UpdateString', @success OUT, 'email', 'joe@example.com'
EXEC sp_OAMethod @queryParams, 'UpdateString', @success OUT, 'token', 'VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuLi4='
-- Set a session log filename so we can examine the exact request that is sent.
DECLARE @sessionLogPath nvarchar(4000)
SELECT @sessionLogPath = 'qa_output/sessionLog.txt'
EXEC sp_OASetProperty @http, 'SessionLogFilename', @sessionLogPath
-- Send the GET request to an endpoint. We don't care about the response. The purpose of this example
-- is to see the exact HTTP request that is sent..
DECLARE @resp int
EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
EXEC sp_OAMethod @http, 'HttpParams', @success OUT, 'GET', 'https://www.chilkatsoft.com/echoPostBody.asp', @queryParams, @resp
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @queryParams
EXEC @hr = sp_OADestroy @resp
RETURN
END
DECLARE @fac int
EXEC @hr = sp_OACreate 'Chilkat.FileAccess', @fac OUT
DECLARE @sessionLog nvarchar(4000)
EXEC sp_OAMethod @fac, 'ReadEntireTextFile', @sessionLog OUT, @sessionLogPath, 'utf-8'
PRINT @sessionLog
EXEC sp_OAMethod @fac, 'FileDelete', @success OUT, @sessionLogPath
-- This is the exact GET request that was sent.
-- Notice how each query parameter is URL encoded and added to the HTTP start line of the request.
-- GET /echoPostBody.asp?limit=100&email=joe%40example.com&token=VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuLi4%3D HTTP/1.1
-- Host: www.chilkatsoft.com
-- Accept: */*
-- Accept-Encoding: gzip
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @queryParams
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @fac
END
GO