sqlserver调用webservice

rockywu 2014-08-04 08:22:28
调用用net的webservice正常,现在是要调用java的webservice怎么不一样了?
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

调用java的webservice(调webservice在ORACLE pl/sql可正常调用,网址操作也OK)
CREATE PROCEDURE [dbo].[pt_BarcodeForJRpt]
(
@ObjId VARCHAR(2000)
)
AS
Begin
--QRCODE_BLOB_API
declare @ObjValue varbinary(16)
Select @ObjValue=ObjValue
from BarcodeBlobTab
where ObjId=@ObjId
if @ObjValue is null
begin
declare @ServiceUrl as varchar(1000)
declare @UrlAddress varchar(500)
set @UrlAddress = 'http://192.168.0.128/qrcode/show?v='
set @ServiceUrl = @UrlAddress + @ObjId

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
end
END

...全文
286 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
霜寒月冷 2014-08-05
  • 打赏
  • 举报
回复
http://192.168.0.128/qrcode/show?v=AAAA,可以显示一张二维码 二维码,通过xml形式显示不出来吧。你通过程序应用Service调用试试
rockywu 2014-08-05
  • 打赏
  • 举报
回复
怎么知道是标准soap协议?这个java web service是别人提供的,输入http://192.168.0.128/qrcode/show?v=AAAA,可以显示一张二维码! 以前在oracle是这样写的pl/sql
PROCEDURE Create_Qrcode(
   v_     VARCHAR2 )
IS
   --
   req_   utl_http.req;
   resp_  utl_http.resp;
   len_   NUMBER;
   blob_  BLOB;
   raw_   RAW(32767);
   --
   key_   qrcode_blob_tab.obj_id%TYPE;
BEGIN
   General_SYS.Init_Method( lu_name_, 'QRCODE_BLOB_API', 'Create_Qrcode');
   key_     := substrb( v_, 1, 200);
   req_     := utl_http.begin_request('http://192.168.0.128/qrcode/show?v=' || key_ );
   utl_http.set_header(req_, 'User-Agent', 'Mozilla/4.0');
   resp_    := utl_http.get_response(req_);
   --
   dbms_lob.createtemporary( blob_, TRUE );

   BEGIN
      LOOP
         utl_http.read_raw(resp_, raw_, 32767);
         dbms_lob.writeappend( blob_, utl_raw.length(raw_), raw_);
      END LOOP;
   EXCEPTION WHEN utl_http.end_of_body THEN
      NULL;
   END;
   utl_http.end_response( resp_ );

   qrcode_blob_api.Upload_Blob( key_, blob_ );

END Create_Qrcode;
threenewbee 2014-08-05
  • 打赏
  • 举报
回复
java的web service是否使用的是标准的soap协议?
sdsxc 2014-08-04
  • 打赏
  • 举报
回复
参数问题把???

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧