本文目录导航:
php soap扩展做webservice的时候 如何传入数组或者对象参数?
SOAP可以传递数组和对象,比较复杂不便详述。
你可以在网上查阅SOAP的规范。
SOAP的对象需要定义在wsdl里。
这就要求java调用方也定义这些对象。
使用SOAP要注意一个问题:SOAP没有统一的标准,不同语言对SOAP的实现有微小差别,有可能导致不兼容。
编写SOAP的wsdl是件麻烦而且痛苦的事。
你可以试试使用第三方库。
Yii框架就提供一个强大的SOAP解决方案。
你可以通过注释和类,自动生成wsdl。
个人不推荐在PHP中使用SOAP,因为PHP不像其他语言类似JAVA、,提供强大的SOAP支持。
你可以考虑轻量级API,也可以考虑XML-RPC。
并不比SOAP差,而且很灵活。
望采纳,谢谢!
PHPRPCPHPrpc的特点
PHPRPC是一款轻量级的远程调用协议,与SOAP相比,它有着显著的优势。
SOAP虽然号称简单对象存取协议,但其实协议复杂且实现混乱,不仅在异构系统部署困难,即使是同一种语言,其部署成本也很高,被归类为重量级协议。
相比之下,PHPRPC的协议设计简单,仅一人之力即可实现多语言版本,其数据表示高效,处理和传输速度远超SOAP,部署和使用过程简单易行,如版本,甚至比官方的WebService更易于使用,无需Visual Studio也可轻松构建。
在安全方面,PHPRPC采取内置加密机制,虽然不如WS-Security复杂,但足以保证数据在HTTP网络上的安全传输,无需额外的安全标准。
它基于HTTP协议,能够广泛部署于互联网,这对于互联网应用来说更具优势,特别是在跨网际环境下的应用部署。
PHPRPC支持十几种主流编程语言,不仅跨平台,而且随着其发展,未来还将支持更多语言,满足不同开发者的需求。
特别是它的跨域能力,允许在浏览器环境中通过JavaScript调用服务器端函数,甚至支持直接跨域,这是SOAP无法比拟的。
在复杂对象传输方面,PHPRPC支持自由交换各种类型的数据,包括基本数据和复杂对象,无需复杂的XML构造,使用起来更为直观。
引用参数传递功能使得返回数据的方式更加灵活,即使在需要时,也能提供有用的信息。
除了通过返回值和参数获取数据,PHPRPC还支持通过输出方式高效返回大量数据。
在远程调用时,它会分级处理错误,仅致命错误才会中断调用,提供更丰富的错误信息。
对于支持会话的服务器,PHPRPC还能协助管理状态。
PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
如何使用PHP调用ArcGIS Server的Soap接口
查看ArcGIS Server的SOAP SDK的帮助的时候,会发现所提供的示例代码只有c#,和java的,并没有PHP语言的示例,实际上并不是不支持PHP语言,从PHP toolkits include PHP-SOAP and NuSOAP上可以看出PHP是支持Soap协议的,只不过使用PHP并没有提供现成的工具可以将WSDL转换成本地化的类,而 SDK提供了工具,java提供了Apache Axis工具可以将WSDL中的类型转换成本地化类。当使用PHP调用WebService的时候,当输入的参数是简单数据类型的时候是没有任何问题的,返回值类型是类得时候也没有任何的问题,但是当输入参数的值类型为某个类得时候,就无法调用了,这些类太多了,自己手写这些类几乎是不可能,因此找到一个类似于和Apache Axis的工具还是很有必要的,在网上终于搜到一个工具,名字为可以实现该功能
评论(0)