php 创建和调用webservice接口示例

  • Post author:
  • Post category:php


1,生成wsdl文件

1)建立 creat_wsdl.php

 <?php
    include_once('Service.php');
    include_once('SoapDiscovery.class.php');//此文件网络有下载
    $wsdl=new SoapDiscovery('Service','soap');//第一参数为类名,也是生成wsdl的文件名Service.wsdl,第二个参数是服务的名字可以随便写
    $wsdl->getWSDL();
 ?>


2)建立 Service.php 这里需要一个类及方法

<?php
    class Service
    {
        public function Hello()
        {
                echo 'hello good';
        }
        public function Add($a,$b)
        {
                return $a+$b;
        }
    }

?>


3)执行 php creat_wsdl.php 生成 Service.wsdl文件,需要注意下面是否正确

<service name=”soap”>

<documentation />

<port name=”soapPort” binding=”tns:soapBinding”><soap:address location=”http://localhost:12312/Service.php(注意这里需要修改正确的php文件)” />

</port>

</service>

4)建立 服务文件,包含方法及服务启用

<?php
    class Service
    {
        public function Hello()
        {
                echo 'hello good';
        }
        public function Add($a,$b)
        {
                return $a+$b;
        }
    }
   
    $server= new SoapServer( 'Service.wsdl', array('uri' => 'http://localhost:12312') );
    $server->setClass('Service');//注册Service类的所有方法
    $server->handle();//处理请求

?>


2,启动webservice服务  php -S localhost:12312

3,编写客户端程序并调用 client.php

 <?php
    ini_set('soap.wsdl_cache_enabled','0');//关闭缓存
    $soap=new SoapClient('Service.wsdl', array('uri' => 'http://localhost:12312'));
    echo $soap->Add(1,2);
    //echo $soap->__soapCall('Add',array(1,2))//或者这样调用也可以
 ?>

附:关键函数说明文档:


https://www.php.net/manual/en/soapserver.soapserver.php


https://www.php.net/manual/en/soapclient.soapclient.php



版权声明:本文为u013625451原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。