Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 HTTPS over T-SQL  [new]
hollister
Member

Откуда: Дармштадт
Сообщений: 130
Коллеги, привет. подскажите пожалуйста, как обращаться к ресурсам HTTPS через T-SQL
Пример кода

DECLARE @win   INT
DECLARE @hr   INT
DECLARE @text   VARCHAR (MAX)
DECLARE @str   VARCHAR (100)
DECLARE @Result   NVARCHAR (MAX)
DECLARE @result   TABLE (result VARCHAR (MAX))
  
    EXEC @hr=sp_OACreate 'MSXML2.ServerXMLHttp',@win OUT 
    IF @hr <> 0 BEGIN 
		EXEC sp_OAGetErrorInfo @win
		select 2
	END

    EXEC @hr=sp_OAMethod @win, 'Open',NULL,'GET', 'https://api.direct.yandex.com','false'
    IF @hr <> 0 BEGIN 
		EXEC sp_OAGetErrorInfo @win
		select 3 
	END 
  

    EXEC @hr=sp_OAMethod @win,'Send', null
	IF @hr <> 0 BEGIN 
		EXEC sp_OAGetErrorInfo @win
	END 


	SELECT @Result = result FROM @result


выдает ответ
A certificate is required to complete client authentication
Хотя сертификат установлен, открываю на хосте с БД explorer и перехожу по ссылке - все ок.
Так же пытался сделать через WinHttp.WinHttpRequest.5.1, одинаковый результат

В MS SQL какое то свое хранилище сертификатов?
Прошу помочь

Заранее благодарен.
16 апр 18, 16:17    [21342870]     Ответить | Цитировать Сообщить модератору
 Re: HTTPS over T-SQL  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
поиск рулит
16 апр 18, 16:22    [21342885]     Ответить | Цитировать Сообщить модератору
 Re: HTTPS over T-SQL  [new]
hollister
Member

Откуда: Дармштадт
Сообщений: 130
Проблема именно в том, что с этим сайтом код не работает
https://api.direct.yandex.com

А если взять например какой нибудет https://habrahabr.ru/ или даже https://ya.ru - все ок

Что то странное
16 апр 18, 16:49    [21342974]     Ответить | Цитировать Сообщить модератору
 Re: HTTPS over T-SQL  [new]
hollister
Member

Откуда: Дармштадт
Сообщений: 130
Попробуйте у себя рабочий пример

declare @obj int, @ret  int, @text varchar(max), @url varchar(max)

select @url = 'https://api.direct.yandex.ru/'

exec @ret = sp_OACreate 'MSXML2.ServerXMLHTTP', @obj out
IF @ret <> 0 exec sp_OAGetErrorInfo @obj

exec @ret = sp_OAMethod @obj, 'Open', null, 'GET', @url, 'false'
if @ret <> 0 exec sp_OAGetErrorInfo @obj


exec @ret = sp_OAMethod @obj, 'setOption', null, 2 ,13056  -- игнорировать сертификат
if @ret <> 0 exec sp_OAGetErrorInfo @obj

EXEC @ret = sp_OAMethod @obj, 'SEND'
if @ret <> 0 exec sp_OAGetErrorInfo @obj

EXEC @ret = sp_OAGetProperty @obj, 'responsetext'
if @ret <> 0 exec sp_OAGetErrorInfo @obj
16 апр 18, 16:56    [21342993]     Ответить | Цитировать Сообщить модератору
 Re: HTTPS over T-SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7671
hollister,

С# еще не освоили?
16 апр 18, 18:48    [21343271]     Ответить | Цитировать Сообщить модератору
 Re: HTTPS over T-SQL  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3675
Владислав Колосов
hollister,

С# еще не освоили?


а смысл?
17 апр 18, 12:22    [21344963]     Ответить | Цитировать Сообщить модератору
 Re: HTTPS over T-SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7671
Ролг Хупин,

очень простой - закрыть "черный ход" в виде OLE автоматизации.
17 апр 18, 16:37    [21346070]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить