标签:
前段时间做了一个项目的二次开发,有个功能是需要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不太明白,如果有明白的,希望给小白指点一下,谢谢。
php调用webservice接口,java代码接收不到参数
标签:
原文地址:http://www.cnblogs.com/colorcat/p/5566465.html