Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не читабелен текст 'ResponseText' который возвращает xml с сайта http://alfa-sms.ru:8080  [new]
Soloxa
Member

Откуда:
Сообщений: 12
Задача получить в переменную то что видно в браузере по ссылке
http://alfa-sms.ru:8080/smw/aisms

видно

<output>
<errors>
<error>User authentication failed</error>
</errors>
</output>

пытаемся использовать следующий запрос
в итоге свойство ResponseText на выход выдает ?* (что то не читабельное)
хотя свойство 'Responsebody' явно не пустое
если заменить @url = 'http://alfa-sms.ru:8080' то свойство ResponseText на выход выдает НОРМАЛЬНЫЙ текст

ниже полный текст запроса:


DECLARE @url varchar(300)  
	DECLARE @win int 
	DECLARE @hr  int 
	SET @url = 'http://alfa-sms.ru:8080/smw/aisms'
	
------ SET @url = 'http://alfa-sms.ru:8080' ----- при этом читабельный текст 
 declare @test nvarchar (1000)
 declare @bin as binary(8000)

	EXEC @hr=sp_OACreate 'MSXML2.ServerXMLHTTP',@win OUT 
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

--	EXEC @hr=sp_OAMethod @win, 'Open',NULL,'POST',@url,'false'
	
	EXEC @hr=sp_OAMethod @win, 'Open',null,'POST',@url,'false'
	
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

 EXEC @hr=sp_OAMethod @win, 'setRequestHeader',NULL, 'Content-type', 'application/x-www-form-urlencoded; charset=UTF-8'
 ---  EXEC @hr=sp_OAMethod @win, 'setRequestHeader',NULL, 'Content-type', ' text/plain; charset=windows-1251'
   
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

  EXEC @hr=sp_OAMethod @win,'Send',NULL,'user=???&pass=????&action=status&sms_id=351993522'
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

	EXEC @hr=sp_OAGetProperty @win,'status'
	EXEC @hr=sp_OAGetProperty @win,'StatusText'
	EXEC @hr=sp_OAGetProperty @win,'ResponseText', @test output
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win
EXEC @hr=sp_OAGetProperty @win,'Responsebody', @bin output

	EXEC @hr=sp_OADestroy @win 
	IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 
	select @test as ff
	select @bin as nc
8 фев 13, 21:51    [13900313]     Ответить | Цитировать Сообщить модератору
 Re: Не читабелен текст 'ResponseText' который возвращает xml с сайта http://alfa-sms.ru:8080  [new]
ziktuw
Member

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

вот так работает:

DECLARE 
    @url varchar(800) = 'http://alfa-sms.ru:8080/smw/aisms?user=???&pass=????&action=status&sms_id=351993522' 
  , @win int 
  , @test varchar (1000)

EXEC sp_OACreate 'Microsoft.XMLHTTP',@win OUT 
EXEC sp_OAMethod @win, 'Open',null,'GET',@url,0
EXEC sp_OAMethod @win,'Send'
EXEC sp_OAGetProperty @win,'ResponseText', @test output

select @test

EXEC sp_OADestroy @win 
9 фев 13, 13:04    [13901958]     Ответить | Цитировать Сообщить модератору
 Re: Не читабелен текст 'ResponseText' который возвращает xml с сайта http://alfa-sms.ru:8080  [new]
Soloxa
Member

Откуда:
Сообщений: 12
Спасибо да работает

Глеб
Soloxa,

вот так работает:

DECLARE 
    @url varchar(800) = 'http://alfa-sms.ru:8080/smw/aisms?user=???&pass=????&action=status&sms_id=351993522' 
  , @win int 
  , @test varchar (1000)

EXEC sp_OACreate 'Microsoft.XMLHTTP',@win OUT 
EXEC sp_OAMethod @win, 'Open',null,'GET',@url,0
EXEC sp_OAMethod @win,'Send'
EXEC sp_OAGetProperty @win,'ResponseText', @test output

select @test

EXEC sp_OADestroy @win 
9 фев 13, 14:13    [13902034]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить