コード例 #1
1
ファイル: server.php プロジェクト: roquebrasilia/sgdoc-codigo
<?php

ini_set("soap.wsdl_cache_enabled", 0);
ini_set("soap.wsdl_cache_dir", "/tmp");
ini_set("soap.wsdl_cache_ttl", 86400);
if (isset($_GET['wsdl'])) {
    $autodiscover = new Zend_Soap_AutoDiscover();
    $autodiscover->setBindingStyle(array('style' => 'rpc'));
    $autodiscover->setOperationBodyStyle(array('use' => 'literal'));
    $autodiscover->setClass('ProviderWebServiceSyncUnits');
    $data = file_get_contents('php://input');
    $autodiscover->handle($data);
} else {
    $server = new Zend_Soap_Server(__URLSERVERAPP__ . '/webservices/unidades/server.php?wsdl', array('cache_wsdl' => false));
    $server->setClass('ProviderWebServiceSyncUnits');
    $server->setPersistence(SOAP_PERSISTENCE_REQUEST);
    $data = file_get_contents('php://input');
    $server->handle($data);
}
コード例 #2
0
ファイル: LogonController.php プロジェクト: rtsantos/mais
 public function soapAction()
 {
     $this->getResponse()->setHeader('Content-Type', 'text/xml;charset=utf-8', true);
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->layout()->disableLayout();
     $version = $this->getRequest()->getParam('version');
     $wsdl = $this->getRequest()->getParam('wsdl');
     $service = 'Auth_Service_Ldap';
     if ($wsdl) {
         $autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
         $autodiscover->setUri(ZendT_Url::getUri());
         $autodiscover->setClass($service);
         $autodiscover->handle();
     } else {
         if (!$version) {
             $version = '1_0';
         }
         $fileWsdl = APPLICATION_PATH . '/modules/auth/services/Ldap/version_' . $version . '.wsdl';
         if (file_exists($fileWsdl)) {
             $wsdl = str_replace("\\", "/", $fileWsdl);
         } else {
             $wsdl = ZendT_Url::getUri() . '?wsdl=1';
         }
         $server = new Zend_Soap_Server();
         $server->setWsdl($wsdl);
         $server->setClass($service);
         $server->handle();
     }
 }
コード例 #3
0
 public function soapAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->layout()->disableLayout();
     $params = $this->getRequest()->getParams();
     if (!isset($params['version'])) {
         $params['version'] = '1.0';
     }
     $service = 'Ged_Service_FileSystem';
     $this->getResponse()->setHeader('Content-Type', 'text/xml;charset=utf-8', true);
     if (isset($params['wsdl'])) {
         $autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
         $autodiscover->setUri(ZendT_Url::getUri());
         $autodiscover->setClass($service);
         $autodiscover->handle();
     } else {
         $version = str_replace('.', '_', $params['version']);
         $names = explode('_', $service);
         $fileWsdl = APPLICATION_PATH . '/modules/' . strtolower($names[0]) . '/' . strtolower($names[1]) . 's/' . $names[2] . '/wsdl/' . $names[2] . '_v' . $version . '.wsdl';
         if (file_exists($fileWsdl)) {
             $wsdl = str_replace("\\", "/", $fileWsdl);
         }
         $server = new Zend_Soap_Server();
         $server->setWsdl($wsdl);
         $server->setClass($service);
         $server->handle();
     }
 }
コード例 #4
0
 public function soap()
 {
     $vs_wsdl = $this->request->config->get("site_host") . __CA_URL_ROOT__ . "/service.php/usercontent/UserContent/soapWSDL";
     $vo_soapserver = new Zend_Soap_Server($vs_wsdl, array("soap_version" => SOAP_1_2));
     $vo_soapserver->setClass('UserContentService', $this->request);
     $this->view->setVar("soap_server", $vo_soapserver);
     $this->render("usercontent_soap.php");
 }
コード例 #5
0
 /**
  * Actual "do request" method.
  *
  * @internal
  * @param Zend_Soap_Client_Common $client
  * @param string $request
  * @param string $location
  * @param string $action
  * @param int    $version
  * @param int    $one_way
  * @return mixed
  */
 public function _doRequest(Zend_Soap_Client_Common $client, $request, $location, $action, $version, $one_way = null)
 {
     // Perform request as is
     ob_start();
     $this->_server->handle($request);
     $response = ob_get_clean();
     return $response;
 }
コード例 #6
0
ファイル: Local.php プロジェクト: bhaumik25/zend-framework
    function __doRequest($request, $location, $action, $version) {
    	ob_start();
        $this->_server->handle($request);
        $response = ob_get_contents();
        ob_end_clean();

        return $response;
    }
コード例 #7
0
 /**
  * function SOAP Handle. points to Np_Soap_Handler 
  * the class for the used for the soap method called .
  * 
  * @return bool $result The Result of the SOAP Handle Function
  * 
  */
 private function handleSOAP()
 {
     $soap = new Zend_Soap_Server(Application_Model_General::getWsdl(), array('soap_version' => SOAP_1_1));
     $soap->setClass('Np_Soap_Handler');
     $soap->handle();
     $response = $soap->getLastResponse();
     return $response;
     // - change to result from handle
 }
コード例 #8
0
 public function soap()
 {
     if ($this->opb_disable) {
         return "";
     }
     $vs_wsdl = $this->request->config->get("site_host") . __CA_URL_ROOT__ . "/service.php/accesscontrol/AccessControl/soapWSDL";
     $vo_soapserver = new Zend_Soap_Server($vs_wsdl, array("soap_version" => SOAP_1_2));
     $vo_soapserver->setClass('AccessControlService', $this->request);
     $this->view->setVar("soap_server", $vo_soapserver);
     $this->render("accesscontrol/accesscontrol_soap.php");
 }
コード例 #9
0
ファイル: IndexController.php プロジェクト: powman/zfpadrao
 public function indexAction()
 {
     $this->_helper->viewRenderer->setNoRender(true);
     $this->_helper->layout()->disableLayout();
     // initialize server and set URI
     $server = new Zend_Soap_Server(null, array('uri' => 'http://painel.local/webservice/index'));
     // set SOAP service class
     $server->setClass('App_Webservice_Imagem');
     // handle request
     $server->handle();
 }
コード例 #10
0
 public function processServer()
 {
     if (!$_SERVER['REMOTE_ADDR'] == $this->helpers->config('client_ip')) {
         header('HTTP/1.0 403 Forbidden');
         return _arNone();
     }
     $soap = new Zend_Soap_Server($this->url('soapserver|soap|WSDL'));
     $soap->setUri($this->url('soapserver|soap|Server'));
     $soap->setClass('soapserverservice');
     $soap->setWsdlCache(false);
     $soap->handle();
     return _arNone();
 }
コード例 #11
0
ファイル: Local.php プロジェクト: alefernie/intranet
 /**
  * Actual "do request" method.
  *
  * @internal
  * @param Zend_Soap_Client_Common $client
  * @param string $request
  * @param string $location
  * @param string $action
  * @param int    $version
  * @param int    $one_way
  * @return mixed
  */
 public function _doRequest(Zend_Soap_Client_Common $client, $request, $location, $action, $version, $one_way = null)
 {
     // Perform request as is
     ob_start();
     $this->_server->handle($request);
     $response = ob_get_clean();
     if ($response === null || $response === '') {
         $serverResponse = $this->server->getResponse();
         if ($serverResponse !== null) {
             $response = $serverResponse;
         }
     }
     return $response;
 }
コード例 #12
0
 /**
  * Handle requests regarding users
  *
  * @return void
  */
 public function __call($function, $params)
 {
     $action = strtolower(str_replace('Action', '', $function));
     $class = 'ShortUrl_Api_' . ucfirst($action);
     if (!@(include_once str_replace('_', '/', $class) . '.php')) {
         throw new ShortUrl_Api_ClassNotFoundException($class);
     }
     if (isset($_GET['wsdl'])) {
         $autodiscover = new Zend_Soap_AutoDiscover();
         $autodiscover->setClass($class)->handle();
     } else {
         $soap = new Zend_Soap_Server($this->_getWsdl($action));
         $soap->setClass($class)->handle();
     }
 }
コード例 #13
0
ファイル: SearchController.php プロジェクト: niutech/SOA
 public function indexAction()
 {
     if ($this->getRequest()->query->has("wsdl")) {
         $soap = new \Zend_Soap_AutoDiscover("Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex");
         $soap->setUri($this->getRequest()->getUriForPath("/search"))->setClass('\\Server\\CodeSearchBundle\\Libraries\\SoapFacade');
     } else {
         $soap = new \Zend_Soap_Server($this->getRequest()->getUri() . "?wsdl");
         $soap->setObject($this->get('SoapFacade'));
     }
     $response = new Response();
     $response->headers->set('Content-Type', 'text/xml; charset=UTF-8');
     ob_start();
     $soap->handle();
     $response->setContent(ob_get_clean());
     return $response;
 }
コード例 #14
0
 /**
  * Método executado após qualquer action.
  * Responsável por instanciar a classe de soap correta e configurala
  * disponibilizando assim o serviço para ser consumido.
  */
 public function postDispatch()
 {
     $request = $this->getRequest();
     $params = $request->getParams();
     $router = Zend_Controller_Front::getInstance()->getRouter();
     if ($this->_hasParam('wsdl')) {
         $server = new Zend_Soap_AutoDiscover();
     } else {
         $server = new Zend_Soap_Server();
         $url = "{$request->getScheme()}://{$request->getHttpHost()}{$router->assemble($params)}";
         $server->setUri($url);
         $server->setEncoding('ISO-8859-1');
     }
     $server->setClass($this->serviceClass);
     $server->handle();
 }
コード例 #15
0
ファイル: RemoteappController.php プロジェクト: knatorski/SMS
 public function connectorAction()
 {
     $this->getHelper('viewRenderer')->setNoRender();
     $this->_helper->layout->disableLayout();
     $conf = Zend_Registry::get('config');
     if (isset($_GET['wsdl'])) {
         $autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence');
         $autodiscover->setClass('Logic_RemoteSiteConn');
         $this->getResponse()->setHeader('Content-Type', 'text/xml')->setBody($autodiscover->handle());
     } else {
         // pointing to the current file here
         $soap = new Zend_Soap_Server($conf['crossover']['webservice']['wsdl']);
         $soap->setClass('Logic_RemoteSiteConn');
         $soap->setSoapVersion(SOAP_1_2);
         $soap->handle();
     }
 }
コード例 #16
0
ファイル: ServiceController.php プロジェクト: erider/basezf
 public function soapServerAction()
 {
     // disable layout and view
     $this->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     // handle wsdl request
     if (isset($_GET['wsdl'])) {
         $autodiscover = new Zend_Soap_AutoDiscover();
         $autodiscover->setClass('MyProject_Service_Soap_Example');
         $autodiscover->handle();
         // handle server request
     } else {
         $serverUrl = str_replace('server', 'wsdl', MAIN_URL . $this->getRequest()->getRequestUri());
         $soap = new Zend_Soap_Server($serverUrl);
         $soap->setClass('MyProject_Service_Soap_Example');
         $soap->handle();
     }
 }
コード例 #17
0
 public function endpointAction()
 {
     // disable wsdl cache
     if (PIMCORE_DEVMODE) {
         ini_set("soap.wsdl_cache_enabled", "0");
     }
     // create classmappings
     $classMap = Webservice_Tool::createClassMappings();
     //        p_r($classMap); die();
     // create wsdl
     // @TODO create a cache here
     $strategy = new Zend_Soap_Wsdl_Strategy_Composite(array("object[]" => "Zend_Soap_Wsdl_Strategy_AnyType"), "Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex");
     $autodiscover = new Zend_Soap_AutoDiscover($strategy);
     $autodiscover->setClass('Webservice_Service');
     $wsdl = $autodiscover->toXml();
     //TODO: do we really want to normalize class names since we had to introduce request and response objects anyway?
     $wsdl = str_replace("Webservice_Data_", "", $wsdl);
     // normalize classnames
     $wsdlFile = PIMCORE_SYSTEM_TEMP_DIRECTORY . "/wsdl.xml";
     file_put_contents($wsdlFile, $wsdl);
     chmod($wsdlFile, 0766);
     // let's go
     if (isset($_GET["wsdl"])) {
         header("Content-Type: text/xml; charset=utf8");
         echo $wsdl;
     } else {
         Pimcore::setAdminMode();
         Document::setHideUnpublished(false);
         Object_Abstract::setHideUnpublished(false);
         Object_Abstract::setGetInheritedValues(false);
         try {
             $server = new Zend_Soap_Server($wsdlFile, array("cache_wsdl" => false, "soap_version" => SOAP_1_2, "classmap" => $classMap));
             $server->registerFaultException("Exception");
             $server->setClass("Webservice_Service");
             $server->handle();
         } catch (Exception $e) {
             Logger::log("Soap request failed");
             Logger::log($e);
             throw $e;
         }
     }
     exit;
 }
コード例 #18
0
 /**
  * Generate a server fault
  *
  * Note that the arguments are the reverse of those used by SoapFault.
  *
  * Moodle note: the difference with the Zend server is that we throw a SoapFault exception
  * with the debuginfo integrated in the exception message when DEBUG >= NORMAL
  *
  * If an exception is passed as the first argument, its message and code
  * will be used to create the fault object if it has been registered via
  * {@Link registerFaultException()}.
  *
  * @link   http://www.w3.org/TR/soap12-part1/#faultcodes
  * @param  string|Exception $fault
  * @param  string $code SOAP Fault Codes
  * @return SoapFault
  */
 public function fault($fault = null, $code = "Receiver")
 {
     //intercept any exceptions with debug info and transform it in Moodle exception
     if ($fault instanceof Exception) {
         //add the debuginfo to the exception message if debuginfo must be returned
         if (debugging() and isset($fault->debuginfo)) {
             $fault = new SoapFault('Receiver', $fault->getMessage() . ' | DEBUG INFO: ' . $fault->debuginfo);
         }
     }
     return parent::fault($fault, $code);
 }
コード例 #19
0
ファイル: MailController.php プロジェクト: rtsantos/mais
 public function soapAction()
 {
     $this->_helper->viewRenderer->setNoRender();
     $this->_helper->layout()->disableLayout();
     $params = $this->getRequest()->getParams();
     $service = 'ZendT_Mail_Service';
     $this->getResponse()->setHeader('Content-Type', 'text/xml;charset=utf-8', true);
     if (isset($params['wsdl'])) {
         $autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
         $autodiscover->setUri(ZendT_Url::getUri());
         $autodiscover->setClass($service);
         $autodiscover->handle();
     } else {
         $server = new Zend_Soap_Server();
         #$wsdl = ZendT_Url::getUri() . "?wsdl";
         $wsdl = APPLICATION_PATH . '/controllers/Mail_v1.wsdl';
         $server->setWsdl($wsdl);
         $server->setClass($service);
         $server->handle();
     }
 }
コード例 #20
0
 /**
  * Run the Zend server
  * 
  * @param array $data The server data
  * @return boolean Response
  */
 public static function RunServer($data)
 {
     $server = $data['soapserver'];
     if ($server !== self::$Server || !class_exists('Zend_Soap_Server')) {
         PhpWsdl::Debug('Zend not found or server object changed');
         return true;
         // We can't handle this server run!
     }
     if (!PhpWsdl::CallHook('ZendRunHook', $data)) {
         return false;
     }
     self::$Server->handle();
     return false;
 }
コード例 #21
0
ファイル: locallib.php プロジェクト: rboyatt/mahara
 /**
  * Generate a server fault
  *
  * Note that the arguments are reverse to those of SoapFault.
  *
  * note: the difference with the Zend server is that we throw a SoapFault exception
  * with the debuginfo integrated to the exception message when DEBUG >= NORMAL
  *
  * If an exception is passed as the first argument, its message and code
  * will be used to create the fault object if it has been registered via
  * {@Link registerFaultException()}.
  *
  * @link   http://www.w3.org/TR/soap12-part1/#faultcodes
  * @param  string|Exception $fault
  * @param  string $code SOAP Fault Codes
  * @return SoapFault
  */
 public function fault($fault = null, $code = "Receiver")
 {
     //run the zend code that clean/create a soapfault
     $soapfault = parent::fault($fault, $code);
     //intercept any exceptions and add the errorcode and debuginfo (optional)
     $actor = null;
     $details = null;
     if ($fault instanceof Exception) {
         //add the debuginfo to the exception message if debuginfo must be returned
         if (ws_debugging() and isset($fault->debuginfo)) {
             $details = $fault->debuginfo;
         }
     }
     return new SoapFault($soapfault->faultcode, $soapfault->getMessage() . ' | ERRORCODE: ' . (isset($fault->errorcode) ? $fault->errorcode : $code), $actor, $details);
 }
コード例 #22
0
ファイル: Server.php プロジェクト: nnevala/zf-boilerplate
 /**
  * Handle a request
  * overload the default ZF method
  *
  * @param string $request Optional request
  * @return void|string
  */
 public function handle($request = null)
 {
     if (null === $request) {
         $request = file_get_contents('php://input');
     }
     if (strlen($request) == 0) {
         $soap = $this->_getSoap();
         $soap->fault(401, 'Message contains no XML');
     }
     $dom = new \DOMDocument();
     if (!$dom->loadXML($request)) {
         $soap = $this->_getSoap();
         $soap->fault(401, 'Message contains invalid XML');
     } else {
         //strip out api_key stuff
         $xml = simplexml_load_string($request);
         $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
         $children = (array) $xml->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children($url);
         $methods = array_keys($children);
         $method = $methods[0];
         $soap = $this->_getSoap();
         $apikey = (string) $xml->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children($url)->{$method}->children()->apikey;
         if ($this->_hasAccess($apikey, $method)) {
             //strip api info
             unset($xml->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children($url)->{$method}->children()->apikey);
             $request = $xml->asXml();
             //remove whitespace & empty lines
             $request = trim($request);
             $request = preg_replace("/(^[\r\n]*|[\r\n]+)[\\s\t]*[\r\n]+/", "\n", $request);
             return parent::handle($request);
         } else {
             $soap = $this->_getSoap();
             $soap->fault(403, 'Access forbidden');
         }
     }
 }
コード例 #23
0
ファイル: Server.php プロジェクト: knatorski/SMS
 public function handle($request = null)
 {
     if (null === $request) {
         $request = file_get_contents('php://input');
     }
     $db = Zend_Db_Table::getDefaultAdapter();
     $cm = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('soaplogger');
     $write = new Zend_Log_Writer_Db($db, 'log.soapserver', array('priority' => 'priority', 'message' => 'message', 'created_at' => 'timestamp', 'ip' => 'ip', 'target_name' => 'target_name', 'id_external_customer' => 'id_external_customer', 'request' => 'request', 'response' => 'response'));
     $cm->setWriter($write);
     $logger = $cm->getLogObject();
     try {
         $response = parent::handle($request);
         echo $this->_response;
         $logger->setEventItem('request', json_encode($request));
         $logger->setEventItem('response', json_encode($response));
         $logger->log('Wykonano.', Zend_Log::INFO);
         return $response;
     } catch (Exception $e) {
         $logger->setEventItem('request', json_encode($request));
         $logger->setEventItem('response', json_encode($response));
         $logger->log('Wyjątek!!!', Zend_Log::ERR);
         throw $e;
     }
 }
コード例 #24
0
ファイル: Action.php プロジェクト: kokkez/shineisp
 /**
  * Accept the request of the clients
  * 
  * @param string $classname
  */
 public function soap($classname)
 {
     if (empty($classname)) {
         return false;
     }
     list($app, $module, $class) = explode("_", $classname);
     // initialize server and set URI
     $optionsoap = array('location' => "http://" . $_SERVER['HTTP_HOST'] . "/" . strtolower($class) . ".wsld", 'uri' => 'urn:' . $classname);
     $server = new Zend_Soap_Server(null, $optionsoap);
     // set SOAP service class
     $server->setClass($classname);
     // Bind already initialized object to Soap Server
     $server->setObject(new $classname());
     $server->setReturnResponse(false);
     // register exceptions for generating SOAP faults
     $server->registerFaultException(array('Shineisp_Api_Exceptions'));
     // handle request
     $server->handle();
 }
コード例 #25
0
ファイル: server1.php プロジェクト: jsnshrmn/Suma
    /**
     * @var string
     */
    public $bar;
    /**
     * @var string
     */
    public $foo;
}
/**
 * @category   Zend
 * @package    Zend_Soap
 * @subpackage UnitTests
 * @copyright  Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Soap_Wsdl_ComplexTypeA
{
    /**
     * @var Zend_Soap_Wsdl_ComplexTypeB[]
     */
    public $baz = array();
}
if (isset($_GET['wsdl'])) {
    $server = new Zend_Soap_AutoDiscover(new Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex());
} else {
    $uri = "http://" . $_SERVER['HTTP_HOST'] . "/" . $_SERVER['PHP_SELF'] . "?wsdl";
    $server = new Zend_Soap_Server($uri);
}
$server->setClass('Zend_Soap_Service_Server1');
$server->handle();
コード例 #26
0
ファイル: ServerTest.php プロジェクト: omusico/logica
 function __doRequest($request, $location, $action, $version, $one_way = 0)
 {
     ob_start();
     $this->server->handle($request);
     $response = ob_get_clean();
     return $response;
 }
コード例 #27
0
/**
 * Endpoint voor de faxservice soap services
 */
ini_set('xdebug.remote_enable', 'off');
set_include_path(realpath(dirname(__FILE__) . '/../') . '/library/');
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
// todo live gegevens
$db = Zend_Db::factory('mysqli', array('host' => 'dev2.admin.netexpo.nl', 'username' => 'faxservicesoap', 'password' => 'fkXcn2di', 'dbname' => 'netexpo', 'charset' => 'utf8'));
Zend_Registry::set('db', $db);
// testen zonder soap
if (isset($_GET['nosoap']) == true) {
    $s = new ServicedeskFax();
    //var_dump($s->getAvailableFaxnumbers(31,10));
}
// testen met een client
if (isset($_GET['client']) == true) {
    $s = new SoapClient('http://' . $_SERVER['HTTP_HOST'] . '/' . $_SERVER['PHP_SELF'] . '?wsdl');
    //var_dump($s->getCountries());
}
if (isset($_GET['wsdl'])) {
    $autodiscover = new Zend_Soap_AutoDiscover();
    $autodiscover->setClass('ServicedeskFax');
    $autodiscover->handle();
} else {
    $soap = new Zend_Soap_Server('http://' . $_SERVER['HTTP_HOST'] . '/' . $_SERVER['PHP_SELF'] . '?wsdl');
    $soap->setClass('ServicedeskFax');
    $soap->handle();
}
コード例 #28
0
ファイル: ClientTest.php プロジェクト: netvlies/zf
 public function testSetInputHeaders()
 {
     if (headers_sent()) {
         $this->markTestSkipped('Cannot run testSetInputHeaders() when headers have already been sent; enable output buffering to run this test');
         return;
     }
     $server = new Zend_Soap_Server(dirname(__FILE__) . '/_files/wsdl_example.wsdl');
     $server->setClass('Zend_Soap_Client_TestClass');
     $client = new Zend_Soap_Client_Local($server, dirname(__FILE__) . '/_files/wsdl_example.wsdl');
     // Add request header
     $client->addSoapInputHeader(new SoapHeader('http://www.example.com/namespace', 'MyHeader1', 'SOAP header content 1'));
     // Add permanent request header
     $client->addSoapInputHeader(new SoapHeader('http://www.example.com/namespace', 'MyHeader2', 'SOAP header content 2'), true);
     // Perform request
     $client->testFunc2('World');
     $expectedRequest = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" ' . 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' . 'xmlns:ns1="http://www.example.com/namespace" ' . 'xmlns:enc="http://www.w3.org/2003/05/soap-encoding">' . '<env:Header>' . '<ns1:MyHeader2>SOAP header content 2</ns1:MyHeader2>' . '<ns1:MyHeader1>SOAP header content 1</ns1:MyHeader1>' . '</env:Header>' . '<env:Body>' . '<env:testFunc2 env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">' . '<who xsi:type="xsd:string">World</who>' . '</env:testFunc2>' . '</env:Body>' . '</env:Envelope>' . "\n";
     $this->assertEquals($client->getLastRequest(), $expectedRequest);
     // Add request header
     $client->addSoapInputHeader(new SoapHeader('http://www.example.com/namespace', 'MyHeader3', 'SOAP header content 3'));
     // Perform request
     $client->testFunc2('World');
     $expectedRequest = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" ' . 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' . 'xmlns:ns1="http://www.example.com/namespace" ' . 'xmlns:enc="http://www.w3.org/2003/05/soap-encoding">' . '<env:Header>' . '<ns1:MyHeader2>SOAP header content 2</ns1:MyHeader2>' . '<ns1:MyHeader3>SOAP header content 3</ns1:MyHeader3>' . '</env:Header>' . '<env:Body>' . '<env:testFunc2 env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">' . '<who xsi:type="xsd:string">World</who>' . '</env:testFunc2>' . '</env:Body>' . '</env:Envelope>' . "\n";
     $this->assertEquals($client->getLastRequest(), $expectedRequest);
     $client->resetSoapInputHeaders();
     // Add request header
     $client->addSoapInputHeader(new SoapHeader('http://www.example.com/namespace', 'MyHeader4', 'SOAP header content 4'));
     // Perform request
     $client->testFunc2('World');
     $expectedRequest = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" ' . 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' . 'xmlns:ns1="http://www.example.com/namespace" ' . 'xmlns:enc="http://www.w3.org/2003/05/soap-encoding">' . '<env:Header>' . '<ns1:MyHeader4>SOAP header content 4</ns1:MyHeader4>' . '</env:Header>' . '<env:Body>' . '<env:testFunc2 env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">' . '<who xsi:type="xsd:string">World</who>' . '</env:testFunc2>' . '</env:Body>' . '</env:Envelope>' . "\n";
     $this->assertEquals($client->getLastRequest(), $expectedRequest);
 }
コード例 #29
0
ファイル: index.php プロジェクト: juliancastillot/Shift8
require_once '../library/Shift8.php';
/**
 * While trying to develop the Soap extension for Shift8, I needed a way to debug
 * the events occuring to the remote asterisk, thus the Debug Listener and the 
 * Syslog debug listener
 */
require_once '../library/Debug/Listener/Syslog.php';
if (isset($_GET['wsdl'])) {
    $autodiscover = new Zend_Soap_AutoDiscover('Zend_Soap_Wsdl_Strategy_ArrayOfTypeComplex');
    $autodiscover->setOperationBodyStyle(array('use' => 'literal', 'namespace' => 'http://' . $_SERVER['HTTP_HOST']));
    /*	
     * Does not work with PHP Soap Client. Might be required for .NET clients
     *
    $autodiscover->setBindingStyle(
    	array(
    		'style'		=> 'document',
    		'transport' 	=> 'http://schemas.xmlsoap.org/soap/http'
    	)
    );
    */
    $autodiscover->setClass('Shift8');
    $autodiscover->handle();
} else {
    session_start();
    $wsdl = sprintf('http://%s%s?wsdl', $_SERVER['HTTP_HOST'], $_SERVER['SCRIPT_NAME']);
    $soap = new Zend_Soap_Server($wsdl);
    $soap->setClass('Shift8', $config['asterisk'], $config['manager'], $config['secret'], false, new Shift8_Debug_Listener_Syslog());
    $soap->setPersistence(SOAP_PERSISTENCE_SESSION);
    $soap->registerFaultException('Shift8_Exception');
    $response = $soap->handle();
}
コード例 #30
0
ファイル: SoapController.php プロジェクト: riteshsahu1981/we
 private function handleSOAP()
 {
     $soap = new Zend_Soap_Server($this->_WSDL_URI);
     $soap->setClass('Base_Soap_Soaptest');
     $soap->handle();
 }