您的位置:首页 > 数据库

sql调用webservice问题

2015-12-16 14:36 393 查看
declare @ServiceUrl as varchar(1000)

declare @UrlAddress varchar(500)

declare @FunName varchar(50)

declare @P1 varchar(20)

declare @P2 varchar(20)

declare @P3 varchar(20)

declare @P1_Value varchar(20)

declare @P2_Value varchar(20)

declare @P3_Value varchar(100)

select @UrlAddress='http://192.168.0.103:8000/ForSRMK2Service.asmx/'

set @FunName = 'PerformCountermeasureProcess'

set @P1 = 'Term'

set @P2 = 'Pitem'

set @P3 ='firstRespon'

set @P1_Value ='asdf'

set @P2_Value = 1111

select @P3_Value ='sailunjinyu\buqinglong'

set @ServiceUrl = @UrlAddress + @FunName + '?' + @P1 + '=' + @P1_Value +'&' + @P2 + '=' + @P2_Value +'&' + @P3 + '=' + @P3_Value

Declare @Object as Int

Declare @ResponseText as nvarchar(4000)

Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;

Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'

Exec sp_OAMethod @Object, 'send'

Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT

Select @ResponseText

Exec sp_OADestroy @Object

返回结果:

<?xml version="1.0" encoding="utf-8"?>

<boolean xmlns="http://192.168.0.103:8000/">true</boolean>

根据返回结果处理业务

if charindex('TRUE',upper(@ResponseText) ) >0

begin

-- DoSomething

If @@Error <> 0

Goto ErrM

end

此方法并不适用所有webservice,本机http://localhost:8001/WebService.asmx下的

CurrentTime

报错,返回结果:

因 URL 意外地以“/CurrentTime”结束,请求格式无法识别

不明所以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: