加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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


推荐网址:
http://www.scottnichol.com/nusoapprogwsdl.htm
摘抄部分如下:
服务器端程序

<?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>';
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读