php调用webservice接口,java代码接收不到参数

时间:2022-09-30 16:30:59

  前段时间做了一个项目的二次开发,有个功能是需要php调用java实现的webservice接口,并传递一些参数给接口,然后按照对方提供的接口说明文档进行传参调用,java那边有接收到请求,但是参数总是为null,部分代码如下:

1 $client = new SoapClient ($this->webServiceUrl); 
2 $client->soap_defencoding = 'utf-8';
3 $client->xml_encoding = 'utf-8';
4 $param = $context;//参数拼接xml字符串
5 $result = $client->managementMemberInfo($param);//返回值

  不管传什么类型的数据,对方接收到的都是null。然后各种百度(此处有吐槽:百度真心辣鸡。),百度出来各种乱七八糟的答案,各种尝试,然后继续各种失败。T@T。。。。后面看到一篇文章,说要添加键值,然后尝试了一下:

1 $client = new SoapClient ($this->webServiceUrl); 
2 $client->soap_defencoding = 'utf-8';
3 $client->xml_encoding = 'utf-8';
4 $param = array('context'=> $context);//参数拼接xml字符串
5 $result = $client->managementMemberInfo($param);//返回值

  然后,依然是悲剧。。。。。。继续百度,必应。。。然后又看到一篇说要添加键值,键名为arg0这种,如果有多个应该是一次类推arg1,arg2等等,好吧,本来自己觉得跟前面加键值没啥区别,但还是试了一下:

1 $client = new SoapClient ($this->webServiceUrl); 
2 $client->soap_defencoding = 'utf-8';
3 $client->xml_encoding = 'utf-8';
4 $param = array('arg0'=>$context);//参数拼接xml字符串
5 $result = $client->managementMemberInfo($param);//返回值

  然后,对方说接收到数据了。。。。。。

 

  特此记录一下。ps:对于为什么一定是arg0不太明白,如果有明白的,希望给小白指点一下,谢谢。