Webサービスのインスタンス
任意のアプリケーションは、Webサービスコンポーネントを有することができます。
カテゴリWebサービスの作成やプログラミング言語に依存しません。
この章では、我々はWebサービスを作成するためにPHPのSOAP拡張モジュールの使用を紹介します。
SOAPは2つの動作モード、NO-WSDLおよびWSDLを持っています。
- NO-WSDLモード:パラメータを使用するための情報を伝達します。
- WSDLモード:パラメータとしてWSDLファイル名を使用して、サービスのWSDLから必要な情報を抽出します。
一つの例:PHPのWebサービス
インスタンスを開始する前に、我々は、PHPのSOAP拡張機能をインストールするかどうかを決定する必要があります。 phpinfo、すでにSOAP拡張機能をインストールして表示され、次のメッセージを参照してください。
この例では、単純なWebサービスを作成するためにPHPのSOAPを使用します。
server.phpというファイルサーバのコードは次のとおりです。
<?php // SiteInfo 类用于处理请求 Class SiteInfo { /** * 返回网站名称 * @return string * */ public function getName(){ return "本教程"; } public function getUrl(){ return "www.w3write.com"; } } // 创建 SoapServer 对象 $s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php")); // 导出 SiteInfo 类中的全部函数 $s->setClass("SiteInfo"); // 处理一个SOAP请求,调用必要的功能,并发送回一个响应。 $s->handle(); ?>
次のようにファイルコードClient.phpクライアントは、次のとおりです。
<?php try{ // non-wsdl方式调用web service // 创建 SoapClient 对象 $soap = new SoapClient(null,array('location'=>"http://localhost/soap/Server.php",'uri'=>'Server.php')); // 调用函数 $result1 = $soap->getName(); $result2 = $soap->__soapCall("getUrl",array()); echo $result1."<br/>"; echo $result2; } catch(SoapFault $e){ echo $e->getMessage(); }catch(Exception $e){ echo $e->getMessage(); }
その後、我々は、httpを訪問:次のように//localhost/soap/Client.php、出力結果は次のとおりです。