SQL Server中调用WebService的实例

尊重原著作:本文转载自http://www.cnblogs.com/icycore/p/3532197.html

1.Ole Automation Procedures 服务器配置选项

  当启用 OLE Automation Procedures 时,对 sp_OACreate 的调用将会启动 OLE 共享执行环境。

  可以使用 sp_configure 系统存储过程来查看和更改 Ole Automation Procedures 选项的当前值。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
View Code

2.编写SQL代码并执行

declare @ServiceUrl as varchar(1000) 
declare @UrlAddress varchar(500)

--WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/' 
set @UrlAddress = 'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/'

declare @FunName varchar(50)
--WebService中调用的方法名:例如'getMobileCodeInfo'
set @FunName = 'getMobileCodeInfo'   

--以下参数对应WebService中4个参数的[参数名]
declare @P1 varchar(800),@P2 varchar(100)
set @P1 = 'mobileCode'
set @P2 = 'userid'

declare @P1_Value varchar(100),@P2_Value varchar(100)
set @P1_Value = '13800138000'
set @P2_Value = ''

set @ServiceUrl = @UrlAddress + @FunName + '?' + @P1 + '=' + @P1_Value +'&' + @P2 + '=' + @P2_Value                       
                  
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
                  
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
GO
View Code

  需注意,返回结果是带解析的XML编码。

posted @ 2014-08-29 17:49  海天鑫  阅读(434)  评论(0编辑  收藏  举报