Итак, сегодня я использую 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
? Я пытался исследовать онлайн, но не смог найти много информации на этот счет