Nusoap复杂对象的的webService制作
发布时间:2020-12-17 00:32:04 所属栏目:安全 来源:网络整理
导读:转自:http://www.cnblogs.com/likwo/archive/2009/09/24/1573261.html 推荐网址: http://www.scottnichol.com/nusoapprogwsdl.htm 摘抄部分如下: 服务器端程序 ?php// Pull in the NuSOAP coderequire_once('nusoap.php');// Create the server instance$
转自:http://www.cnblogs.com/likwo/archive/2009/09/24/1573261.html 推荐网址:
<?php // Pull in the NuSOAP code require_once('nusoap.php'); // Create the server instance $server = new soap_server(); // Initialize WSDL support $server->configureWSDL('hellowsdl2','urn:hellowsdl2'); // Register the data structures used by the service $server->wsdl->addComplexType( 'Person','complexType','struct','all','',array( 'firstname' => array('name' => 'firstname','type' => 'xsd:string'),'age' => array('name' => 'age','type' => 'xsd:int'),'gender' => array('name' => 'gender','type' => 'xsd:string') ) ); $server->wsdl->addComplexType( 'SweepstakesGreeting',array( 'greeting' => array('name' => 'greeting','winner' => array('name' => 'winner','type' => 'xsd:boolean') ) ); // Register the method to expose $server->register('hello',// method name array('person' => 'tns:Person'),// input parameters array('return' => 'tns:SweepstakesGreeting'),// output parameters 'urn:hellowsdl2',// namespace 'urn:hellowsdl2#hello',// soapaction 'rpc',// style 'encoded',// use 'Greet a person entering the sweepstakes' // documentation ); // Define the method as a PHP function function hello($person) { $greeting = 'Hello,' . $person['firstname'] . '. It is nice to meet a ' . $person['age'] . ' year old ' . $person['gender'] . '.'; $winner = $person['firstname'] == 'Scott'; return array( 'greeting' => $greeting,'winner' => $winner ); } // Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> 客户端程序:
<?php // Pull in the NuSOAP code require_once('nusoap.php'); // Create the client instance $client = new soapclient('http://localhost/phphack/hellowsdl2.php?wsdl',true); // Check for an error $err = $client->getError(); if ($err) { // Display the error echo '<h2>Constructor error</h2><pre>' . $err . '</pre>'; // At this point,you know the call that follows will fail } // Call the SOAP method $person = array('firstname' => 'Willi','age' => 22,'gender' => 'male'); $result = $client->call('hello',array('person' => $person)); // Check for a fault if ($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '<h2>Error</h2><pre>' . $err . '</pre>'; } else { // Display the result echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>'; } } // Display the request and response echo '<h2>Request</h2>'; echo '<pre>' . htmlspecialchars($client->request,ENT_QUOTES) . '</pre>'; echo '<h2>Response</h2>'; echo '<pre>' . htmlspecialchars($client->response,ENT_QUOTES) . '</pre>'; // Display the debug messages echo '<h2>Debug</h2>'; echo '<pre>' . htmlspecialchars($client->debug_str,ENT_QUOTES) . '</pre>'; ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读