php soap扩展做webservice的时候 如何传入数组或者对象参数?

最近需要些一些接口和JAVA通信 , 考虑后想用soap来做webservice ,捣鼓半天 用zend studio生成wsdl文件后 成功做了一个demo .下面请看问题:
加入类文件如下:(类文件就是给soapserverObj->setClass()调用的文件)
class service {
public function smit(array $params){
return $params;

}

}

我用的是zend studio 10.1 生成wsdl中设置方法 参数类型的时候找不到array类型 我只能用string 代替

同样 返回值也是。
问题:难道我在soapclient 中调用方法时 只能用string的参数吗 我看过很多例子 都能引入数组
我有想过用json字串引入 但是感觉有点别扭 求高手解答!!!!

SOAP可以传递数组和对象,比较复杂不便详述。你可以在网上查阅SOAP的规范。SOAP的对象需要定义在wsdl里。这就要求java调用方也定义这些对象。

使用SOAP要注意一个问题:SOAP没有统一的标准,不同语言对SOAP的实现有微小差别,有可能导致不兼容。

编写SOAP的wsdl是件麻烦而且痛苦的事。你可以试试使用第三方库。Yii框架就提供一个强大的SOAP解决方案。你可以通过注释和类,自动生成wsdl。个人不推荐在PHP中使用SOAP,因为PHP不像其他语言类似JAVA、.NET,提供强大的SOAP支持。

你可以考虑轻量级API,也可以考虑XML-RPC。并不比SOAP差,而且很灵活。

望采纳,谢谢!追问

我用的thinkphp框架 不知道有没有soap支持

追答

我帮你查了一下,有个叫nusoap的类库可以使用。你可以在网上了解一下。

望采纳,谢谢支持!

追问

我已经用php自带的扩展了 能加你的联系方式吗 ?

追答

PHP自带的扩展不能生成wsdl。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网