加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice 客户端调用 实践发现的问题

发布时间:2020-12-17 00:27:01 所属栏目:安全 来源:网络整理
导读:http://blog.csdn.net/huayu0815/article/details/8564084 刚学习webservice,看到网上有进行webservice客户端调用的文章,方法很简单,很好用,就转载下来 http://blog.csdn.net/huayu0815/article/details/8564084 在项目里试了试,发现有问题。 先描述一

http://blog.csdn.net/huayu0815/article/details/8564084

刚学习webservice,看到网上有进行webservice客户端调用的文章,方法很简单,很好用,就转载下来

http://blog.csdn.net/huayu0815/article/details/8564084

在项目里试了试,发现有问题。

先描述一下我的服务端的webservice。主要是一个参数和返回值都是JSONObject类型的方法。举例 :

public class Test {
    public JSONObject test(JSONObject o) {
       ......
    }
}

我先在服务器端将这个类发布,调用http://.......?wsdl可以看到,发布成功了。

然后我再客户端,用spring托管的方式来调用这个webservice,没有问题,可以拿到正常的返回值。

之后写了一个main方法,在客户端分别有上篇日志转载的方法来调用这个webservice,发现都有问题。

对于第二种方法,直接提示无法createObject

对于第一种,我之前大意了,对于url后面也加了?wsdl,结果就中出错,提示不存在element的错误。

上网查以才知道,用这种方法url后面是不能加?wsdl的~汗~

我去了?wsdl,更神奇的现象出现了:我查看日志,传给服务器的参数是JSONObject,服务器接收到的也是这个类型,处理正常执行,返回的也是这个类型,但是客户端接受的到就被截去了json后面的部分,只显示{“key1”:value2},"key2",value2...都没有了。很崩溃啊

仔细想了想,估计是类型的问题。我把服务器端的webservice参数和返回值类型都改成了String,再次测试,两种方法都没问题了。

webservice是跨语言的,String对于各种语言的支持都是蛮高的,我想,如果没什么特殊需要,还是都用string作为参数和返回值比较好

当然,对于复杂的,必须用对象进行传输的,还需要仔细研究一下,毕竟,传输简单对象也是webservice的一大优点。

PS:其实,如果业务不复杂,用http加参数的方式调用接口更快,webservice的功能更多,但是效率确实不怎么样

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读