WebService接口之soap

256 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1.开启php的soap扩展

2.服务器端,目录./api 下建立Server.php文件

Class PersonInfo
{
    /**
     *    返回姓名
     *    @return string
     *
     */
    public function getName(){
        return "My Name is Caffrey";
    }
}

$ser = 'Server.php';
$location = 'http://'.$_SERVER['HTTP_HOST'].'/api/'.$ser;


//wsdl方式提供web service,如果生成了wsdl文件则可直接传递到//SoapServer的构造函数中
$s = new SoapServer(null,array("location"=>$location,"uri"=>$ser));
$s -> setClass("PersonInfo");
$s -> handle();

3.客户端,目录./api 建立 Client.php 文件

try{

    $ser = 'Server.php';
    $location = 'http://'.$_SERVER['HTTP_HOST'].'/api/'.$ser;
    $soap = new SoapClient(null,array("location"=>$location,"uri"=>$ser));

    //两种调用方式,直接调用方法,和用__soapCall简接调用
    $result1 = $soap->getName();
    $result2 = $soap->__soapCall("getName",array());
    echo $result1."<br/>";
    echo $result2;

}catch(SoapFault $e){
    echo $e->getMessage();
}catch(Exception $e){
    echo $e->getMessage();
}

4.返回结果:

My Name is Caffrey
My Name is Caffrey