码迷,mamicode.com
首页 > 编程语言 > 详细

关于 php 调用 其他语言写的Web Service SOAP 接口的参数传递问题

时间:2018-01-21 16:28:45      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:很多   朋友   内容   参考   语言   rar   XML   数组   cal   

关于 php 调用 其他语言写的Web Service SOAP 接口的参数传递问题,有需要的朋友可以参考下。


php调用java写的soap接口经验: 

 

 


场景一:

 


java是以数组的形式接收参数的,我使用的方法如下:

 


方法一:

 


require_once ROOT_PATH . ‘/libraries/nusoap/nusoap.php‘;//引入nusoap类库文件
$client = new nusoap_client("$WSDL_URL",true);
$client->decode_utf8 = false;
$client->soap_defencoding = "UTF-8";//java接收是是使用utf-8的,设置为utf-8,防止出现乱码
$arr =array("param1"=>$param1,"param2"=>$param2);//传递的参数
$result = $client->call(‘Reserve_Save2‘,$arr);

 


if ($client->fault) {
//成功
} else {

 


//失败

 


}

 

 

 


此种情景也可以使用以下三种方法调用:

 



$client = new SoapClient($WSDL_URL);

 


方法二、$client->FunctionName($param1,$param2);

 


方法三、$client->__soapCall("FunctionName",array($param1,$param2));

 


方法四、$client->__soapCall("FunctionName",array("param1"=>$param1,"param2"=>$param2));

 

 

 


场景二:

 


java是以字符串的形式接收参数的,方法一调试不成功,经历了很多尝试之后,找到这篇文章(http://blog.163.com/shihua_23/blog/static/2333759420108213340651/),尝试了里面的方法,终于成功了,顿时泪流满面,非常感谢作者。方法如下:

 


方法五:

 


$soap = new SoapClient ( "$WSDL_URL" 
);

 


$param = array(array("data"=>"<Request><cardtype>15</cardtype><cardnumber>88888888</cardnumber><telephone>18511111111</telephone><name>小星星</name></Request>"));//注:此处必须是二维数组,且第二维的键值必须是data,value值是要传递的xml结构的字符串。

 


$result = $soap->__soapCall ( ‘FunctionName‘, 
$param );

 

 

 

 

 

 

 


此处贴出我参考的文章的内容:

 

 

 

 



php在调用C#写的SOAP接口方法需要传递参数时,以下三种方法均会传递失败:

 


$client = new SoapClient($WSDL_URL);

 


1、$client->FunctionName($param1,$param2);

 


2、$client->__soapCall("FunctionName",array($param1,$param2));

 


3、$client->__soapCall("FunctionName",array("param1"=>$param1,"param2"=>$param2));

 

 


正确的方法是将参数作为二维数组来传,如下所示:

 


$param_ary =array(array("param1"=>$param1,"param2"=>$param2) );

 


$client->__soapCall("FunctionName",$param_ary);

 


若php调用php自己写的SOAP服务端,则无需传二维数组。

 


其中原因不明,待查。。。。

关于 php 调用 其他语言写的Web Service SOAP 接口的参数传递问题

标签:很多   朋友   内容   参考   语言   rar   XML   数组   cal   

原文地址:https://www.cnblogs.com/xiaoleiel/p/8324293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!