웹 서비스 인스턴스
모든 애플리케이션에는 웹 서비스 구성 요소가 있을 수 있습니다.
웹 서비스의 생성은 프로그래밍 언어의 종류와는 아무런 관련이 없습니다.
이 장에서는 PHP의 SOAP 확장을 사용하여 웹 서비스를 만드는 방법을 소개합니다.
SOAP에는 NO-WSDL과 WSDL의 두 가지 작동 모드가 있습니다.
NO-WSDL 모드: 매개변수를 사용하여 사용할 정보를 전달합니다.
WSDL 모드: WSDL 파일 이름을 매개변수로 사용하고 WSDL에서 서비스에 필요한 정보를 추출합니다.
예: PHP 웹 서비스
예를 시작하기 전에 PHP에 SOAP 확장이 설치되어 있는지 확인해야 합니다. phpinfo를 확인하면 SOAP 확장이 설치되었음을 나타내는 다음 정보가 나타납니다.
이 예에서는 PHP SOAP를 사용하여 간단한 웹 서비스를 만듭니다.
Server Server.php 파일 코드는 다음과 같습니다.
<?php // SiteInfo 类用于处理请求 Class SiteInfo { /** * 返回网站名称 * @return string * */ public function getName(){ return "php中文网"; } public function getUrl(){ return "www.php.cn"; } } // 创建 SoapServer 对象 $s = new SoapServer(null,array("location"=>"http://localhost/soap/Server.php","uri"=>"Server.php")); // 导出 SiteInfo 类中的全部函数 $s->setClass("SiteInfo"); // 处理一个SOAP请求,调用必要的功能,并发送回一个响应。 $s->handle(); ?>
Client 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(); }