Last active
April 6, 2024 07:42
-
-
Save jarrettmeyer/5990daf0db3b1f4fd759df6ed4099685 to your computer and use it in GitHub Desktop.
Demonstrates how to send an HTTP request with SQL Server using OLE Automation.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
EXEC sp_configure 'Ole Automation Procedures', 1; | |
GO | |
RECONFIGURE; | |
GO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DECLARE @authHeader NVARCHAR(64); | |
DECLARE @contentType NVARCHAR(64); | |
DECLARE @postData NVARCHAR(2000); | |
DECLARE @responseText NVARCHAR(2000); | |
DECLARE @responseXML NVARCHAR(2000); | |
DECLARE @ret INT; | |
DECLARE @status NVARCHAR(32); | |
DECLARE @statusText NVARCHAR(32); | |
DECLARE @token INT; | |
DECLARE @url NVARCHAR(256); | |
SET @authHeader = 'BASIC 0123456789ABCDEF0123456789ABCDEF'; | |
SET @contentType = 'application/x-www-form-urlencoded'; | |
SET @postData = 'value1=Hello&value2=World'; | |
SET @url = 'https://en43ylz3txlaz.x.pipedream.net'; | |
-- Open the connection. | |
EXEC @ret = sp_OACreate 'MSXML2.ServerXMLHTTP', @token OUT; | |
IF @ret <> 0 RAISERROR('Unable to open HTTP connection.', 10, 1); | |
-- Send the request. | |
EXEC @ret = sp_OAMethod @token, 'open', NULL, 'POST', @url, 'false'; | |
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Authentication', @authHeader; | |
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-type', @contentType; | |
EXEC @ret = sp_OAMethod @token, 'send', NULL, @postData; | |
-- Handle the response. | |
EXEC @ret = sp_OAGetProperty @token, 'status', @status OUT; | |
EXEC @ret = sp_OAGetProperty @token, 'statusText', @statusText OUT; | |
EXEC @ret = sp_OAGetProperty @token, 'responseText', @responseText OUT; | |
-- Show the response. | |
PRINT 'Status: ' + @status + ' (' + @statusText + ')'; | |
PRINT 'Response text: ' + @responseText; | |
-- Close the connection. | |
EXEC @ret = sp_OADestroy @token; | |
IF @ret <> 0 RAISERROR('Unable to close HTTP connection.', 10, 1); |
How should I post data using body and GET method?
I am trying this code
EXEC @ret = sp_OAMethod @token, 'open', NULL, 'GET', @url, 'false';
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'wts-session', @apiSession;
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'wts-licencetype', @licencetype;
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-type', @contentType;
EXEC @ret = sp_OAMethod @token, 'send', NULL, @Body
Hі!
Can you please help correctly compose multipart/form-data request?
Thks
Hi
The post request does not work for sql server 2008.
Any reason ?
What if the passed value is in HTTP body and not attached to URL ? Consider the data in the body to be in JSON format.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Not sure if this is still an issue, but
DECLARE @key NVARCHAR(100) = [GUID/KEY]; DECLARE @authHeader = ['Bearer/Basic'] + @key; EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Authorization', @authHeader;