IOS 访问java提供的webservice接口,心魔之使


最近用ios访问java提供的webservice接口,到现在还没调通,但是我感觉先已经差不多了。先说说问题:

1、ios访问webservice接口,我知道有两种 ,一种是使用soap2obj这个工具转换wsdl生成对应的对象来访问。这种方式我没仔细试,不太清楚。另一种方式应是比较主流的就是使用http的post方式拼装soap的xml协议方式来访问。这个也没什么说的,百度一大把,这个只是小问题。

2、ios如果访问.net提供的webservice接口估计百度下,很快就实现了。但是如果是访问java提供的webservice接口可能会出现各种各样稀奇古怪的问题,假如你按照百度的那些方式去拼接soap协议的xml参数的话。反正我是碰到过像这个样子的错误的:“Unmarshalling Error: unexpected element (uri:"http://*****/", local:"**Params"). Expected elements are <{}**Params>,<{}**Params>,<{}**Params> ”  (这个才是大问题)

小问题就不说了,那个也算不得问题,关键是第二点。为啥说按照百度的那些访问webservice方式去拼装soap的xml可能会报错呢。(PS:因为也可能不报错。。。哈哈哈)主要是因为有些web程序员发布的接口他不是标准的样式!!!为啥这么说?

网上包括.net提供的soap的xml格式是这个样子的:见图一


其中的一些参数真是一目了然。下面那个大方块里面的内容就是我们请求需要拼装的xml。就按这个格式来。参数对应天进去就ok了。如果你的javawebservice的接口也是长上面这个样子,那恭喜你。你的前面一一条康庄大道。如果不是长这个样子,而且你还按着样子像模像样的抄下去,那等待你的就上面第2点的那个错误。


例如:我要访问的webservice的xml请求参数格式就是这个样子的:见图二


唉,泪奔的话我就不说了,


好了,问题以及原因都说的差不多了,该说说解决方案了,解决方案是:

其实就是要搞清楚你的xml格式是啥样子的。怎么搞清楚?问你的web发布者啊!!!

啥,那个发布接口的人离职了,或者他短路忘记了?那好吧,用一个叫SoapUI的工具,参考这个链接:http://blog.csdn.net/pan_tian/article/details/10301197,或者百度这个工具就知道怎么用了。


Java访问WebService接口的方法有很多种,下面我来介绍一种常用的方法。 Java通过SOAP协议来访问WebService接口,首先需要在项目中引入相关的依赖库,如Apache Axis、Apache CXF等,这些库提供了一些工具类和方法,方便我们使用SOAP协议进行通信。 接下来,我们需要创建一个客户端来调用WebService接口。首先,需要通过WSDL文件生成客户端代码,可以使用Apache Axis提供的工具来生成。生成代码后,我们就可以使用该代码来调用WebService接口了。 在调用WebService接口之前,我们需要创建一个客户端实例。可以通过调用生成的代码中的构造方法来创建。然后,通过该客户端实例,我们就可以调用接口中的各个方法了。 在调用方法之前,我们需要先构造请求报文。根据接口的要求,可以通过设置参数或构建请求数据等方式来构造请求报文。 最后,调用接口方法并获取返回结果。调用方法时,我们需要将构造好的请求报文传入,并获取返回结果,可根据接口定义的返回数据结构来处理返回结果。 需要注意的是,调用WebService接口需要保证接口的可用性,网络连接的可靠性,以及接口的权限等方面的问题。如果出现异常,可以通过日志记录和异常捕获等方式来进行处理。 以上是一种常用的Java访问WebService接口的方法,当然还有其他的方法,可以根据具体的需求进行选择和使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值