Установить пользовательский заголовок запроса в SQL-запросе REST API, который ожидает, что сессия будет передана в заголовке - PullRequest
0 голосов
/ 18 октября 2019

Следуя фантастическому ответу, найденному здесь: Разбор JSON из Интернета в SQL Server 2017

Мне удалось получить тело ответа из HTTP-запроса на сервер REST API, который отвечаетв формате JSON. Это прекрасно работает, когда конечной точке API не требуется идентификатор сеанса.

Однако для конечной точки, которую я хотел бы запросить, требуется идентификатор сеанса (который я протестировал постоянный идентификатор без каких-либо проблем с аутентификацией).

При анализе HTTP-запроса в Wireshark я вижу, чтонет никакого упоминания моего заголовка в пакете данных. Но, глядя на то, как я взаимодействую с API через веб-браузер, я вижу, что мой Session-Id передается.

Вот мой SQL:

Declare @Object as Int;
Declare @Response table (txt nvarchar(max));

Exec sp_OACreate 'MSXML2.serverXMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'GET',
             'http://someip/Rest/EndPoint'
Exec sp_OAMethod @Object, 'setRequestHeader',null,'Session-Id','123456789'
Exec sp_OAMethod @Object, 'send'

Insert Into @Response (txt)
Exec sp_OAMethod @Object, 'responseText'

Exec sp_OADestroy @Object   

Select txt From @Response

Я могу добиться этого просто в Javascipt(см. ниже) без проблем;но он необходим в SQL для анализа ответа в таблицу SQL без использования посредника, такого как NodeJS, и отправки ответа на сервер SQL.

var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.setRequestHeader("Session-Id", "123456789");

Любая / вся помощь будет принята с благодарностью!

Спасибо

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