Sample code for 30+ languages & platforms
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

SQL Server
-- 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