首页 > 代码库 > Nusoap复杂对象的的webService制作
Nusoap复杂对象的的webService制作
推荐网址:
http://www.scottnichol.com/nusoapprogwsdl.htm
摘抄部分如下:
服务器端程序
<?php// Pull in the NuSOAP coderequire_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‘, ‘complexType‘, ‘struct‘, ‘all‘, ‘‘, array( ‘greeting‘ => array(‘name‘ => ‘greeting‘, ‘type‘ => ‘xsd:string‘), ‘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 functionfunction 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 coderequire_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 faultif ($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 responseecho ‘<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 messagesecho ‘<h2>Debug</h2>‘;echo ‘<pre>‘ . htmlspecialchars($client->debug_str, ENT_QUOTES) . ‘</pre>‘;?>
<script id="FoxLingoJs" type="text/javascript">// </script>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。