复制代码 代码如下: <?php class MyFramework_Soap_server extends Zend_Soap_Server { protected $_login = ""; protected $_password = ""; public function __construct($wsdl = null, array $options = null) { parent::__construct($wsdl,$options); if(isset($options["login"])){ $this->_login=$options["login"]; $this->_password=$options["password"]; $this->_authenticate(); } } private function _authenticate(){ $this->setAuthenticate($this->_login,$this->_password); } public function setHttpLogin($login){ $this->_login=$login; } public function setHttpPassword($password){ $this->_password=$password; if(isset($this->_login)){ $this->_authenticate(); } } public function setAuthenticate($login,$password){ if ($_SERVER["PHP_AUTH_USER"]!=$login || $_SERVER["PHP_AUTH_PW"]!=$password) { header("WWW-Authenticate: Basic realm="MyFramework Realm""); header("HTTP/1.0 401 Unauthorized"); echo "You must enter a valid login ID and password to access this resource.
"; exit; } } } ?>
复制代码 代码如下: <?php class Soap_server_test { public $view = ""; public $params = ""; public $requestObj = ""; public $dbObj = ""; function __construct() { $this->view = $GLOBALS["view"]; $this->params = $GLOBALS["params"]; $this->requestObj = $GLOBALS["requestObj"]; $this->dbObj = $GLOBALS["dbObj"]; } function indexAction(){ if(isset($_GET["wsdl"])) { $autodiscover = new MyFramework_Soap_AutoDiscover(); $autodiscover->setClass("Model_Service_SoapClassSetTest"); $autodiscover->handle(); exit; } else { //$options= array("encoding" => "UTF-8","login"=>"tangjian","password"=>"123456"); $options= array("encoding" => "UTF-8"); $soap = new MyFramework_Soap_Server("http://tj.MyFramework.com/default/soap_server_test/index?wsdl",$options); $soap->setHttpLogin("tangjian"); $soap->setHttpPassword("123456"); $soap->setClass("Model_Service_SoapClassSetTest"); $soap->handle(); exit; } } function clientAction() { //$options= array("encoding" => "UTF-8","login"=>"tangjian","password"=>"123456", // "compression" =>SOAP_COMPRESSION_GZIP); $options= array("encoding" => "UTF-8", "compression" =>SOAP_COMPRESSION_GZIP); $client = new MyFramework_Soap_Client("http://tj.MyFramework.com/default/soap_server_test/index?wsdl",$options); $client->setHttpLogin("tangjian"); $client->setHttpPassword("123456"); $result=$client->getPass("tang","man"); print_r($result); } } ?>