• Nusoap复杂对象的的webService制作


    推荐网址:
    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',
        
    '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 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>';
    ?>

  • 相关阅读:
    Wide character in print at a2.pl line 返回json 需要encode_utf8
    decode_json 必须是unicode形式的字符
    Wide character in print at a2.pl line 6.
    unicode转中文
    用 Flask 来写个轻博客 (4) — (M)VC_创建数据模型和表
    Openstack_通用模块_Oslo_vmware 创建 vCenter 虚拟机快照
    为什么企业数据化运营很重要?
    为什么企业数据化运营很重要?
    Openstack_单元测试工具 tox
    java 把已知下载路径的文件复制到本地
  • 原文地址:https://www.cnblogs.com/likwo/p/1573261.html
Copyright © 2020-2023  润新知