php调用Webservice基本语法如下:
$url ='xxxxxxx.cn' //链接服务器端 $client = new SoapClient($url);
通过以上语法已经连接到webservice,也可将wsdl在本地使用,下面的语法将输出所有webservice的方法
$client->__getFunctions()
获得了soap的所有操作方法,我们需要通过以下方法来看某个方法的传参数格式
var_dump($client->__getTypes());
以上输出的结果中如下格式:
array(32) { [0]=> string(61) "struct registEx { string arg0; string arg1; string arg2; }" [1]=> string(40) "struct registExResponse { int return; }"
我找到我需要操作的方法registEx(),看到需要传参3个参数,分别是arg0,arg1,arg2,开始传参调用
$url = 'xxxxxx.cn'; //链接服务器端 $client = new SoapClient($url); $paras=array(array('arg0'=>"HBSDK-99566JCSST",'arg1'=>"Baimuvkey",'arg2'=>'220546')); $reinfo = $client->__soapCall('registEx',$paras); var_dump($reinfo);
或许很多人有疑问参数为什么都是arg格式,不是直接操作原函数直接传参,我猜测可能是因为php为了统一操作而这样使用的把