SQL调用WebService接口

2015-07-24 06:32:43 · 作者: · 浏览: 1

今天在做一个很奇葩的东西,中间有个过程要在SQL触发器里面调用webservice接口。呵呵~

	--调用webService----------------
	declare @ServiceUrl as varchar(1000) 
	DECLARE @UrlAddress varchar(500)

	--WebService地址:以http开头,结尾带斜杠,例如'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/' 
	set @UrlAddress = 'http://api.map.baidu.com/telematics/v3/weather?location=%E5%8C%97%E4%BA%AC&output=json&ak=6brZIzYakoTEW1xrDYk0Wqhd
 '
	SET @ServiceUrl=@UrlAddress--如果有参数可以在此处拼入

	--访问地址获取结果
	Declare @Object as Int
	Declare @ResponseText as Varchar(8000) --必须8000
                  
	EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT; --创建OLE
组件
对象 Exec sp_OAMethod @Object, 'open', NULL, 'POST',@ServiceUrl,'false' --打开链接,注意是get还是post Exec sp_OAMethod @Object, 'send' EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT --输出参数 Select @ResponseText --输出结果 Exec sp_OADestroy @Object GO

这里的webservice只是百度提供的一个测试接口,真正用到的时候,我们可以自己写接口,然后调用自己写的接口,远程执行方法。