欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

LiveBOS Webservice传参类型为list数组

程序员文章站 2022-06-05 18:22:36
昨天有使用soap传输数据到Webservice,其中字符串类型的都已经传输成功,但是有几个参数传输失败,java服务器端收到的空值。 因为我是php的,然后接收端是java制作的,其中有几个参数是list数组类型的,我刚开始将php的数组传过去,服务端接收到的是空,然后再使用json格式还是不行。 ......

  昨天有使用soap传输数据到webservice,其中字符串类型的都已经传输成功,但是有几个参数传输失败,java服务器端收到的空值。

  因为我是php的,然后接收端是java制作的,其中有几个参数是list数组类型的,我刚开始将php的数组传过去,服务端接收到的是空,然后再使用json格式还是不行。后来去询问java同事,他们说list数组类型不像php一样是有键值和键名的,

  java的list数组是只有name和value对应关系,如下所示

 

$arr = array('userid'=>1,'name'=>'张三',params=>arrary(array('name'=>'数组1','value'=>'值1'),'name'=>'数组2','value'=>'值2'));

  将数组通过name和value对应关系后传输给java,java就能解析list数组进行存储。

  __soapcall返回的是object类型的数组,可以先使用json_encode,然后再json_decode进行转换,变为数组格式进行分析判断。

  到此为止,soap传输数据总算完成了。接下来就是一些细节对接问题。因为webservice是有用户校验的,因此我需要先使用它们的登录方法进行登录,然后获取到对应的session值。为了避免不必要的重复登录步骤,因此我将此session值缓存下来,

  放入到cash目录下,然后每次传输数据时都先取然后传输,如果session过期或者无效,根据返回的code判断然后再重新登录更新session值。