注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

php webservice soap简单实例  

2011-12-31 10:52:01|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://www.joyphper.net/article/201105/123.html

接触PHP已经多年,可是对webService一直不太了解,最近公司要做要用PHP做一个接口,是在考虑用webService还是直接用HTTP请求,所以这两天也看了不少有关webService方面的资料

下面是一个小实例

action.php文件内容

  1. <?php  
  2. //action.php  
  3. Class Action {  
  4.           /**  
  5.            * Enter description here...  
  6.            *  
  7.            * @param int $num1  
  8.            * @param int $num2  
  9.            * @return int  
  10.             */ 
  11.           public function total($num1,$num2){  
  12.                      return $num1 + $num2;  
  13.           }  
  14. }  
  15. ?>  

service.php文件内容

  1. <?php 
  2. //service.php  
  3. require './action.php';  
  4. $server = new SoapServer('./action.wsdl');  
  5. $server->setClass('Action');  
  6. $server->handle();  
  7. ?> 

action.wsdl文件内容

  1. <?xml version='1.0' encoding='UTF-8'?> 
  2. <!-- WSDL file generated by Zend Studio. --> 
  3. <definitions name="action" targetNamespace="urn:action" xmlns:typens="urn:action" 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/"> 
  4.     <message name="total"> 
  5.         <part name="num1" type="xsd:integer"/> 
  6.         <part name="num2" type="xsd:integer"/> 
  7.     </message> 
  8.     <message name="totalResponse"> 
  9.         <part name="totalReturn" type="xsd:integer"/> 
  10.     </message> 
  11.  
  12.     <portType name="ActionPortType"> 
  13.         <operation name="total"> 
  14.             <documentation> 
  15.                 Enter description here...  
  16.             </documentation> 
  17.             <input message="typens:total"/> 
  18.             <output message="typens:totalResponse"/> 
  19.         </operation> 
  20.     </portType> 
  21.     <binding name="ActionBinding" type="typens:ActionPortType"> 
  22.         <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 
  23.         <operation name="total"> 
  24.             <soap:operation soapAction="urn:ActionAction"/> 
  25.             <input> 
  26.                 <soap:body namespace="urn:action" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 
  27.             </input> 
  28.             <output> 
  29.                 <soap:body namespace="urn:action" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> 
  30.             </output> 
  31.         </operation> 
  32.     </binding> 
  33.     <service name="actionService"> 
  34.         <port name="ActionPort" binding="typens:ActionBinding"> 
  35.             <soap:address location="http://127.0.0.1/bbs/soap2/service.php"/>  <!--  访问service的路径 --> 
  36.         </port> 
  37.     </service> 
  38. </definitions> 

index.php文件内容

  1. <?php  
  2. //index.php  
  3. $testnew SoapClient("http://127.0.0.1/soap2/action.wsdl");  
  4. $result = $test->total(22,1);  
  5. echo $result;  
  6. ?>  

其中index.php为调用接口的文件,service.php为接口的服务文件,运行index.php就可以直接得到接口返回的值

  评论这张
 
阅读(1067)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018