php 創建和調用webservice接口示例

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


    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章