Как передать заголовок авторизации из SQL Server в API, чтобы получить JSON? - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь получить данные JSON из API с помощью SQL Server 2016. Я могу получить данные, где API не нужны учетные данные пользователя, однако, если мне нужно предоставить имя пользователя и пароль, я не могу получить данные.

DECLARE @authHeader VARCHAR(8000);
DECLARE @contentType VARCHAR(8000);
DECLARE @postData VARCHAR(8000);
DECLARE @responseText VARCHAR(8000);
DECLARE @responseXML VARCHAR(8000);
DECLARE @ret INT;
DECLARE @status VARCHAR(8000);
DECLARE @statusText VARCHAR(8000);
DECLARE @token INT;
DECLARE @url VARCHAR(8000);
DECLARE @JSON VARCHAR(8000);

SET @authHeader = 'BASIC QWERTYASDFGH1234567890123456789==';
SET @contentType = 'application/json';
SET @url = 'https://example.example.com/api/product-list?area=12345&fromMonth=201811&toMonth=201812'

-- 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, 'GET', @Url, 'false'
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Authorization', @authHeader;
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-type', @contentType;

EXEC sp_OAMethod @token, 'send', null
EXEC sp_OAMethod @token, 'responseText', @ResponseText OUTPUT

SET @JSON = @ResponseText
SELECT @JSON 

Кто-нибудь знает, как правильно передать заголовок авторизации из SQL Server?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы проверяли тот же запрос с почтальоном?С точно таким же заголовком?

Обычно заголовок авторизации должен начинаться с ключевого слова «Носитель».

"Authorization": "Bearer yourTokenHere"

Не могли бы вы попробовать этот префикс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...