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

Откуда: DN-KY
Сообщений: 10
Добрый день!

Подскажите, как реализовать именно ОТПРАВКУ XML-запроса на сайт с -XML-АПИ

Сайт: https://gate.smsclub.mobi/xml/
передать туда:
<?xml version=''1.0'' encoding=''utf-8''?>
      <request_sendsms>
            <username><![CDATA[login]]></username>
            <password><![CDATA[pas]]></password>
      </request_balance>


Делаю так, но приходит пустой ответ
Declare @XmlResponse as xml; 
Declare @XML_param as varchar(8000);
Declare @text nvarchar (1000);
Declare @ResponseText as  varchar(8000);
declare @commandText as nvarchar(20);
Declare @url_full nvarchar (1000);
Declare @Object as Int;
DECLARE @Result int 
declare @date nvarchar(20)

SET @XML_param = '<?xml version=''1.0'' encoding=''utf-8''?>
      <request_sendsms>
            <username><![CDATA[login]]></username>
            <password><![CDATA[pas]]></password>
      </request_balance>';


Set @url_full ='https://gate.smsclub.mobi/xml/';

Exec sp_OACreate 'MSXML2.XMLHttp', @Object OUT 
Exec sp_OAMethod @Object, 'open', NULL, 'get',@url_full,'false'

Exec sp_OAMethod @Object, 'send', @XML_param
EXEC sp_OAGetProperty @Object, 'responseXML.xml', @ResponseText OUT 


select @XmlResponse=@ResponseText
Exec sp_OADestroy @Object


Что не так делаю?
4 фев 19, 12:40    [21801186]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
court
Member

Откуда:
Сообщений: 1580
Anikanoff
Что не так делаю?


как минимум, этого не хватает
Exec sp_OAMethod @Object, 'send', null, @XML_param
4 фев 19, 13:13    [21801222]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
aleks222
Member

Откуда:
Сообщений: 449
1. Нахера эти sp_OA...?
2. Как-то так
function Execute-SOAPRequest-ToFile 
( 
        [String] $URL,
        [String] $Action,
        [Xml]    $SOAPRequest,
        [String] $File,
        [int]    $Timeout = 60000

) 
{ 
        $soapWebRequest = [System.Net.WebRequest]::Create($URL)
        $soapWebRequest.Timeout = $Timeout
        $soapWebRequest.Headers.Add("SOAPAction" , $Action ) 

        $soapWebRequest.ContentType = 'text/xml;charset=utf-8' 
        $soapWebRequest.Accept      = $soapWebRequest.ContentType 
        $soapWebRequest.Method      = 'POST' 
        
        $requestStream = $soapWebRequest.GetRequestStream() 
        $SOAPRequest.Save($requestStream) 
        $requestStream.Close() 
        
        $responseStream = $soapWebRequest.GetResponse().GetResponseStream() 
        
        $fileStream =  new-object System.IO.FileStream( $File, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write )
        $responseStream.CopyTo($fileStream)
        $responseStream.Close()
        $fileStream.Close()

        return $true 
} 
4 фев 19, 14:03    [21801276]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
Anikanoff
Member

Откуда: DN-KY
Сообщений: 10
court
Anikanoff
Что не так делаю?


как минимум, этого не хватает
Exec sp_OAMethod @Object, 'send', null, @XML_param


А параметр @XML_param правильно передается?
4 фев 19, 14:27    [21801302]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
Anikanoff
Member

Откуда: DN-KY
Сообщений: 10
aleks222,
Это же powerShell....
мне же нужно выполнять в процедурах на сервере
4 фев 19, 14:28    [21801303]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
tunknown
Member

Откуда:
Сообщений: 608
Anikanoff
SET @XML_param = '<?xml version=''1.0'' encoding=''utf-8''?>


Что не так делаю?

Могу предположить, что одинарную дважды '' нужно заменить на двойную ".
4 фев 19, 14:31    [21801311]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
court
Member

Откуда:
Сообщений: 1580
Anikanoff
court
пропущено...


как минимум, этого не хватает
Exec sp_OAMethod @Object, 'send', null, @XML_param



А параметр @XML_param правильно передается?
null впишешь, и будет правильно.

... если не обращать внимание на то, что ты най... обманываешь вэб-сервис с кодировкой этого параметра. Но если у тебя логин и пароль без кириллицы, то сойдёт
4 фев 19, 14:43    [21801325]     Ответить | Цитировать Сообщить модератору
 Re: Отправка XML-запроса средствами T-SQL  [new]
aleks222
Member

Откуда:
Сообщений: 449
court
то сойдёт


Не сойдет.
'GET' и желания тредстатртера - несовместимы.
4 фев 19, 14:49    [21801335]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить