php 生成 web service 客戶端 調用 欄目 PHP 简体版
原文   原文鏈接

1。先生成WSDL的文檔,網站建設見代碼php

Xml代碼   收藏代碼
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <wsdl:definitions  
  3.     xmlns:impl='http://wso2.org/wsf/php/helloService'  
  4.     xmlns:intf='http://wso2.org/wsf/php/helloService'  
  5.     xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'  
  6.     xmlns:wsdlsoap='http://schemas.xmlsoap.org/wsdl/soap/'  
  7.     xmlns:xsd='http://www.w3.org/2001/XMLSchema'  
  8.     targetNamespace='http://wso2.org/wsf/php/helloService'>   
  9.   <wsdl:types>  
  10.     <schema elementFormDefault='qualified'  
  11.         xmlns:impl='http://wso2.org/wsf/php/helloService'  
  12.         xmlns:intf='http://wso2.org/wsf/php/helloService'  
  13.         xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'  
  14.         xmlns="http://www.w3.org/2001/XMLSchema"  
  15.         targetNamespace='http://wso2.org/wsf/php/helloService' >  
  16.       <element name='greet'>  
  17.         <complexType>  
  18.           <sequence>  
  19.             <element name='name' type='xsd:string' />  
  20.           </sequence>  
  21.         </complexType>  
  22.       </element>  
  23.       <element name='greetResponse'>  
  24.         <complexType>  
  25.           <sequence>  
  26.             <element name='greetReturn' type='xsd:string' />  
  27.           </sequence>  
  28.         </complexType>  
  29.       </element>  
  30.     </schema>  
  31.   </wsdl:types>  
  32.   <wsdl:message name='greetRequest'>  
  33.     <wsdl:part name='parameters' element='impl:greet' />  
  34.   </wsdl:message>  
  35.   <wsdl:message name='greetResponse'>  
  36.     <wsdl:part name='parameters' element='impl:greetResponse' />  
  37.   </wsdl:message>  
  38.   <wsdl:portType name='helloService'>  
  39.     <wsdl:operation name='greet'>  
  40.       <wsdl:input name='greetRequest' message='impl:greetRequest' />  
  41.       <wsdl:output name='greetResponse' message='impl:greetResponse' />  
  42.     </wsdl:operation>  
  43.   </wsdl:portType>  
  44.   <wsdl:binding name='helloServiceSoapBinding' type='impl:helloService'>  
  45.     <wsdlsoap:binding transport='http://schemas.xmlsoap.org/soap/http' style='document' />  
  46.     <wsdl:operation name='greet'>  
  47.       <wsdlsoap:operation soapAction='helloService#greet' />  
  48.       <wsdl:input name='greetRequest'>  
  49.         <wsdlsoap:body use='literal' />  
  50.       </wsdl:input>  
  51.       <wsdl:output name='greetResponse'>  
  52.         <wsdlsoap:body use='literal' />  
  53.       </wsdl:output>  
  54.     </wsdl:operation>  
  55.   </wsdl:binding>  
  56.   <wsdl:service name='helloService'>  
  57.     <wsdl:port binding='impl:helloServiceSoapBinding' name='helloService'>  
  58.       <wsdlsoap:address location='http://10.168.2.5/ws/test1.php' /><!--要修改爲本身的URL地址-->  
  59.     </wsdl:port>  
  60.   </wsdl:service>  
  61. </wsdl:definitions>  

 2.生成Web Service服務端,提供Web Service調用。網站

Php代碼   收藏代碼
  1. <?php  
  2. function greet($param) {  
  3.     $retval = 'Hello '.$param->name;  
  4.     $result = array('greetReturn' => $retval);  
  5.     return $result;  
  6. }  
  7. ini_set("soap.wsdl_cache_enabled""0"); //低版本的PHP一個Bug,必須加這個。高於5.23版本能夠不用加  
  8. $server = new SoapServer('hello.wsdl',array('soap_version' => SOAP_1_2));  
  9. $server->addFunction('greet');  
  10. $server->handle();  
  11. ?>  

 3.客戶端調用這個Web Service,見代碼:spa

Php代碼   收藏代碼
  1. <?php  
  2. try {  
  3.     $client = new SoapClient('http://10.168.2.5/ws/test1.php?wsdl'); //修改爲本身的URL地址  
  4.     $result =  $client->__soapCall('greet'array(array('name' => 'PHP Web Service')));  
  5.     printf("Result = %s"$result->greetReturn);  
  6. } catch (Exception $e) {  
  7.     printf("Message = %s",$e->__toString());  
  8. }  
  9. ?>   (fblww-0305)
相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公眾號
   歡迎關注本站公眾號,獲取更多信息