当前位置:编程学习 > php >>

php soap 实例

 

 

Server+Client+WSDL

 

声明:很简单!!!!!!

参考了如下:

http://blog.csdn.net/phphot/archive/2007/07/15/1692109.aspx

 

先建Server,然后使用wsdl工具来生成wsdl,我用的是zend development environment,

zde中的tools中的wsdl generator wizard

第一页是名字,和输出地址(输出后直接挪过去就OK)

第二页是类和地址,类挑上勾,URL那里添server那个文件的地址

第三页 finish

别忘了拷那个wsdl过去...

 

记得server引用的那个类文件里不要有输出.

 

一共有两个需要添地址的地方

一个是wsdl中的描述http://127.0.0.1/test/CulculatorServer.php

一个是client中的连接http://127.0.0.1/test/Culculator.wsd

 

类文件

 

<?php

/**

 * @name Culculator.php

 * @date Fri Jan 25 12:43:40 CST 2008

 * @copyright 马永占(MyZ)

 * @author 马永占(MyZ)

 * @link http://blog.csdn.net/mayongzhan/

 */

 

class Culculator

{

       /**

        * 求和

        *

        * @param float $x

        * @param float $y

        * @return float

        */

       public function add($x, $y)

       {

              return $x + $y;

       }

}

?>

 

Server

 

<?php

/**

 * @name CulculatorServer.php

 * @date Fri Jan 25 12:44:04 CST 2008

 * @copyright 马永占(MyZ)

 * @author 马永占(MyZ)

 * @link http://blog.csdn.net/mayongzhan/

 */

 

include(''./Culculator.php'');

$server = new SoapServer(''./Culculator.wsdl'');

$server->setClass(''Culculator'');

$server->handle();

?>

 

Client

 

<?php

/**

 * @name CulculatorClient.php

 * @date Fri Jan 25 12:43:54 CST 2008

 * @copyright 马永占(MyZ)

 * @author 马永占(MyZ)

 * @link http://blog.csdn.net/mayongzhan/

 */

 

$soap = new SoapClient(''http://127.0.0.1/test/Culculator.wsdl'');

echo $soap->add(1, 2);

?>

 

WSDL

 

<?xml version=''1.0'' encoding=''UTF-8''?>

 

<!-- WSDL file generated by Zend Studio. -->

 

<definitions name="math" targetNamespace="urn:math" xmlns:typens="urn:math" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">

       <message name="add">

              <part name="x" type="xsd:float"/>

              <part name="y" type="xsd:float"/>

       </message>

       <message name="addResponse">

              <part name="addReturn" type="xsd:float"/>

       </message>

       <portType name="CulculatorPortType">

              <operation name="add">

                     <documentation>

                            求和

                     </documentation>

                     <input message="typens:add"/>

                     <output message="typens:addResponse"/>

              </operation>

       </portType>

       <binding name="CulculatorBinding" type="typens:CulculatorPortType">

              <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

              <operation name="add">

                     <soap:operation soapAction="urn:CulculatorAction"/>

                     <input>

                            <soap:body namespace="urn:math" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

                     </input>

                     <output>

                            <soap:body namespace="urn:math" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

                     </output>

              </operation>

       </binding>

       <service name="mathService">

              <port name="CulculatorPort" binding="typens:CulculatorBinding">

                     <soap:address location="http://127.0.0.1/test/CulculatorServer.php"/>

              </port>

       </service>

</definitions>

 

 



<
补充:Php教程,Php常用代码
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,