最近用到PHP调用WebService与other System进行交换,所以在摸索如何实现,网上的资料不多,走了些弯路。测试成功了分享下,希望查资料的童鞋可以少浪费点时间。
start:环境:php 5,确保php.ini中
extension=php_openssl.dll
extension=php_soap.dll
两行取消注释;
设置连接:
$client = new SoapClient("http://xxx.com/xxxService.asmx?wsdl",array('encoding'=>'UTF-8'));
后面可以设置其他参数,这里的参数是编码格式,防止中文乱码。
设置参数:
$param1=1;
$param2=2;
$param=array('a'=>$param1,'b'=>$param2);//这里两个参数,具体视情况而定
为WebService中调用的方法参数做准备,如无参数则略去;
方法调用:
$p=$client->Sum($param);//这是两数相加的例子
传参并调用;
获取返回的数据对象:
$arr=get_object_vars($p);
读取数据:
$t=$arr['SumResult'];//方法名后面加“Result”才能争取获取
print ($t);
OK,这就是一个简单完整的调用和获取返回结果的Demo。
You can try!
ps:
var_dump($client->__getFunctions());
var_dump($client->__getTypes());
可以用他们来先看下Service中提供的方法,参数及数据类型。