Следуя фантастическому ответу, найденному здесь: Разбор 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");
Любая / вся помощь будет принята с благодарностью!
Спасибо