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”结束,请求格式无法识别
不明所以
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”结束,请求格式无法识别
不明所以
相关文章推荐
- 安卓数据库编程之Sqlite
- 通过 SQL Server 视图访问另一个数据库服务器表的方法
- Oracle定义varchar2()类型存储汉字的长度问题
- 创建oracle数据库的表空间、用户、目录、导入\导出文件等信息
- SQL 非等价连接
- 渗透测试工具sqlmap基础教程
- 关于mysql异常: Access denied for user 'root'@'localhost' (using password: YES)的解决方法
- postgresql 数据导出和导入
- SQL语句获取数据库中的表主键,自增列,所有列
- oracle的主要进程
- mysql同时删除多张开头相同的表
- 数据库设计规范
- vs2008下MFC中采用ado连接MySQL(ODBC、非ODBC或C API方式)
- Mybatis步步进阶(三)——1:N关系配置 && 动态SQL拼接
- oracle查看锁表进程,杀掉锁表进程
- Mybatis步步进阶(二)——SQL的基本配置与执行
- Mybatis步步进阶(一)——环境搭建+创建数据库连接
- Redis搭建入门详解文档
- python redis启用线程池管理
- MySql导入导出数据库(含远程导入导出)