c 调用 java webservice_探讨C 、C#和JAVA:webservice互操作问题

本文探讨C++、C#和Java之间调用WebService的互操作问题,涉及gsoap、Axis和System.WebService的使用。重点在于理解SOAP协议的RPC和Document样式以及encoded和literal编码方式。通过实验发现,保持RPC/Literal风格和UTF8编码的一致性是实现互操作的关键。最后,文中提出了解决C#中soapAction要求和中文乱码问题的策略。
摘要由CSDN通过智能技术生成

首先,分别介绍一下C++、C#和JAVA。

c++用的是gsoap,关于使用gsoap创建webservice的客户端服务端问题,可以参见我以前的随笔: < >

JAVA用的是axis,用axis创建webservice的客户端和服务端的问题,可以google一番,很多这方面的介绍。

C#用的是system.webserive这个类库。

我们的目标是要求C++、C#和JAVA这三者之间的webservice互相通讯正常,即能收到客户端发过来的一串字符串,服务器 端返回给客户端一段字符串。

要保证互相通讯正常,则必须首先明确webservice的采用的SOAP协议。

根据网上的资料:

style属性可分为rpc document,rpc document之间的区别为:

* RPC 样式

RPC样式指定 元素包含一个将被调用的web方法的名称的元素(wrapper element(封装元素))。这个元素依次为该方法的每个参数还有返回值作了记录。

* Document 样式

如果是document 样式,就没有像在RPC样式中的wrapper元素。转而代之的是消息片断直接出现在> 元素之下。没有任何SOAP格式化规则规定元素下能包含什么;它包含的是一个发送者和接收者都达成一致的XML文档。

‘Use’ 属性。这与各种类型如何在XML中显示有关,它指定使用某种编码规则对消息片段进行编码,还是使用消息的具体架构来定义片段。如下就是提供的两种选择:

* encoded

如果use的值是”encoded”, 则每个消息片段将使用类型属性来引用抽象类型。通过应用由 encodingStyle 属性所指定的编码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值