Example #1
0
 /**
  * 创建一个服务
  */
 public function soap($uri, $className, $config = null)
 {
     if (isset($_GET['wsdl'])) {
         $autodiscover = new AutoDiscover();
         $autodiscover->setClass($className)->setUri($uri);
         return $autodiscover->toXml();
     } else {
         $wsdl = strpos($uri, '?') === false ? $uri . '?wsdl' : $uri . '&wsdl';
         $server = new SoapServer($wsdl);
         $obj = $config == null ? new $className() : new $className($config);
         $server->setObject($obj);
         $server->handle();
         $response = $server->getLastRequest();
         if ($response instanceof \SoapFault) {
             $response = exceptionMsg($response);
             $this->log($response);
         }
         return $response;
     }
 }
Example #2
0
 public function testGetLastRequest()
 {
     if (headers_sent()) {
         $this->markTestSkipped('Cannot run testGetLastRequest() when headers have already been sent; enable output buffering to run this test');
         return;
     }
     $server = new Server();
     $server->setOptions(array('location' => 'test://', 'uri' => 'http://framework.zend.com'));
     $server->setReturnResponse(true);
     $server->setClass('\\ZendTest\\Soap\\TestAsset\\ServerTestClass');
     $request = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" ' . 'xmlns:ns1="http://framework.zend.com" ' . 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' . 'xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" ' . 'SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' . '<SOAP-ENV:Body>' . '<ns1:testFunc2>' . '<param0 xsi:type="xsd:string">World</param0>' . '</ns1:testFunc2>' . '</SOAP-ENV:Body>' . '</SOAP-ENV:Envelope>' . "\n";
     $response = $server->handle($request);
     $this->assertEquals($request, $server->getLastRequest());
 }