Как отправить запрос http в SSMS с базовой аутентификацией, передав имя пользователя и пароль? - PullRequest
0 голосов
/ 09 октября 2019

Итак, сегодня я использую API, который возвращает XML-файл по запросу http. Сегодня у меня нет никакой аутентификации в этом процессе, но веб-сайт API обеспечит большую безопасность. Поэтому вместо «Нет аутентификации» мне нужно будет передать имя пользователя и пароль.

Вот код, который я использую сегодня

DECLARE @authHeader VARCHAR(64);
DECLARE @contentType VARCHAR(64);
DECLARE @responseText varchar(4000);
DECLARE @ret INT;
DECLARE @status VARCHAR(32);
DECLARE @statusText VARCHAR(32);
DECLARE @token INT;
DECLARE @url varchar(8000);
--DECLARE @username varchar(255);  will use in the future
--DECLARE @password varchar(255);  will use in the future


SET @authHeader  = 'No Auth'
SET @contentType = 'application/xml';
SET @url = 'https://www.someurl.com/get_xml';

-- 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 @ret = sp_OAMethod @token, 'send'

-- 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);

Как передать тот же запрос http getно с базовой аутентификацией, передавая Username: Login и Password: Admin? Я пытался исследовать онлайн, но не смог найти много информации на этот счет

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