快速业务通道

NuSOAP教程

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-26
就可以通过日志来查看调试信息。加入以下的代码将会显示冗长的调试信息。不幸的是输出的说明必须留给读者。

// Display the debug messages
echo ''<h2>Debug</h2>'';
echo ''<pre>'' . htmlspecialchars($client->debug_str, ENT_QUOTES) . ''</pre>'';

服务器端能够提供相似的调试信息,有趣的是,这些调试信息是在SOAP 的相应的末尾以 xml 格式显示,因此它可以在客户端中查看到。服务器端的调试看起来像这样:

<?php
// Pull in the NuSOAP code
require_once(''nusoap.php'');
// Enable debugging *before* creating server instance
$debug = 1;
// Create the server instance
$server = new soap_server;
// Register the method to expose
$server->register(''hello'');
// Define the method as a PHP function
function hello($name) {
    return ''Hello, '' . $name;
}
// 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);
?>

调试的第三个方法不算是真正的调试,它是很好的编程实践。上面的实例在调用 SOAP 的时候没有做错误的检查,更健壮的客户端会像这样:

<?php
// Pull in the NuSOAP code
require_once(''nusoap.php'');
// Create the client instance
$client = new soapclient(''http://localhost/phphack/helloworld.php'');
// Check for an error
$err = $client->getError();
if ($err) {
    // Display the error
    echo ''<p><b>Constructor error: '' . $err . ''</b></p>'';
    // At this point, you know the call that follows will fail
}
// Call the SOAP method
$result = $client->call(''hello'', array(''name'' => ''Scott''));
// Check for a fault
if ($client->fault) {
    echo ''<p><b>Fault: '';
    print_r($result);
    echo ''</b></p>'';
} else {
    // Check for errors
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo ''<p><b>Error: '' . $err . ''</b></p>'';
    } else {
        // Display the result
        print_r($result);
    }
}
?>

为了测试代码,需要引起错误发生,例如,改变调用的方法名称 hello 为 goodbye。

Request and Response
我在上面的例子中已经展示了显示 SOAP 的请求和响应信息是如此的容易,在这里 hello2client.php 的请求信息:

POST /phphack/helloworld2.php HTTP/1.0
Host: localhost
User-Agent: NuSOAP/0.6.8 (1.81)
Content-Type: text/xml; charset=ISO-8859-1
SOAPAction: ""
Content-Length: 538

<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号