`
sony-soft
  • 浏览: 1026981 次
文章分类
社区版块
存档分类
最新评论

NuSOAP构建基于PHP的SOAP服务

 
阅读更多

为了说明如何应用NuSoap和PHP来构建Web services,我们将举一个简单的例子。这个例子应用程序由一个PHP Web services的服务器端和客户端组成。他将实现两个功能:颠倒一个字符串字符的顺序,求两个数的和。

PHP SOAP服务器
用PHP和NuSoap来建立SOAP服务器非常容易。基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了。

OK,另外还需要两步才能完成PHP SOAP服务器的建立。首先你还要在你的PHP代码中创建NuSoap对象的一个实例,然后用HTTP POST方法将原始数据传给NuSoap进行处理。听起来简单吧。先看看清单1。

清单1:soapfunc.php
<?
require_once('nusoap.php');
function reverse($str){
$retval = "";
if(strlen($str) < 1) {
return new soap_fault('Client','','Invalid string');
}
for ($i = 1; $i <= strlen($str); $i++) {
$retval .= $str[(strlen($str) - $i)];
}
return $retval;
}

function add2numbers($num1, $num2) {
if (trim($num1) != intval($num1)) {
return new soap_fault('Client', '', 'The first number is invalid');
}
if (trim($num2) != intval($num2)) {
return new soap_fault('Client', '', 'The second number is invalid');
}
return ($num1 + $num2);
}
?>

清单1给出了soapfunc.php的源文件。这个文件包含了我们想通过SOAP协议暴露给Web services的两个函数:reverse和add2numbers,它们是我们这个Web services 应用的核心。函数reverse带一个参数,颠倒字符串中的字符的顺序,然后返回。

清单2:soapserver.php
<?
require_once('nusoap.php');
include('soapfunc.php');
$soap = new soap_server;
$soap->register('reverse');
$soap->register('add2numbers');
$soap->service($HTTP_RAW_POST_DATA);
?>

清单2举例说明了NuSoap注册函数和调用SOAP处理程序的用法。你看到了,注册你的两个函数(在soapfunc.php中)、传递POST数据给soap_server对象,就跟创建一个新的soap_server对象实例一样的简单。soap_server对象将要检查POST数据并确定将调用哪个函数,然后向这个PHP函数传递参数。从PHP函数返回的数据被重新包装为SOAP响应并传送给请求服务的SOAP客户端。

PHP SOAP客户端
现在我们已经利用NuSoap和PHP创建了一个SOAP服务器,我们需要对它进行测试。像我们建立SOAP服务器程序一样,我们可以在PHP中利用NuSoap再建立一个SOAP的客户端程序。清单3给出了PHP SOAP客户端程序的源程序。

现在我们已经利用NuSoap和PHP创建了一个SOAP服务器,我们需要对它进行测试。像我们建立SOAP服务器程序一样,我们可以在PHP中利用NuSoap再建立一个SOAP的客户端程序。清单3给出了PHP SOAP客户端程序的源程序。

清单3:soapclient.php
<?
include('nusoap.php');
$client = new soapclient('http://localhost/soapserver.php');

$str = "This string will be reversed";
$params1 = array('str'=>$str);
$reversed = $client->call('reverse',$params1);
echo "If you reverse '$str', you get '$reversed'<br>/n";

$n1 = 5;
$n2 = 14;
$params2 = array('num1'=>$n1, 'num2'=>$n2);
$added = $client->call('add2numbers', $params2);
echo "If you add $n1 and $n2 you get $added<br>/n";
?>

为了在一个SOAP服务器上能使用PHP客户端程序,你还得做三件事情。第一,你要创建一个soapclient对象。soapclient对象负责处理参数的编组和SOAP协议。soapclient需要一个必须是URL的参数。这个URL可以指向一个实际SOAP服务器的HTTP终端或者一个WSDL描述。在我们这个例子里,它是指向我们的PHP SOAP服务器的一个URL。

当调用需要参数的函数时,你需要先创建一个参数数组,数组包括一组键-值(key-value)对。键(key)是参数的名字,值(value)是参数的值。

当需要调用函数时,你就用soapclient对象去调用,并且传入两个参数。第一个参数是你要调用的函数的名字,第二个参数是包含SOAP函数所带参数的一个数组,主调函数将会返回你调用的SOAP函数的值。

要运行这个例子,只要简单的在Web浏览器中输入soapclient.php的URL。你将类似以下的输出:
If you reverse 'This string will be reversed', you get 'desrever eb lliw gnirts sihT' If you add 5 and 14 you get 19

本篇文章来源于 PHP资讯 原文链接:http://www.phpq.net/tutorial/nusoap-php-soap.html

分享到:
评论

相关推荐

    nusoap.php下载,下载nusoap.php

    nusoap.php下载

    nusoap构建webservice (php)

    用php的soap构建webservice,很不错的类库

    NuSOAP-通过HTTP收发SOAP消息的PHP类

    NuSOAP是一组开源的,用来通过HTTP收发SOAP消息的PHP类,由NuSphere Corporation (http://www.nusphere.com ) 开发。NuSOAP的一个优势是他不是一个扩展程序,而是纯粹用PHP代码写的,所以适用范围比较广。

    thinkphp下使用soap

    //从soap目录导class.nusoap.php类文件 $client = new nusoap_client($url. "?WSDL", "wsdl"); $client-&gt;soap_defencoding = 'utf-8'; $client-&gt;decode_utf8 = false; $client-&gt;xml_encoding = 'utf-8'; ...

    nusoap, 用于 PHP 5.6 7.2的固定 NuSOAP.zip

    nusoap, 用于 PHP 5.6 7.2的固定 NuSOAP PHP 5.4---7.1的为 PHP 5.4,5.5,5.6,7.0和 7.1 ( 已经测试) 修复的NuSOAP 。所有学分属于官方 author(s): http://nusoap.sourceforge.net 。

    NUSOAP参考文档 PHP

    nusoap参考手册 ,HTML格式,学习参考用的。

    PHP nusoap.php

    NULL 博文链接:https://zongyukai20070419095606.iteye.com/blog/321599

    nusoap for php

    nusoap,这个用于开发soap,很文件。我自己用的。放这里备份的。

    nusoap.php及若干实例

    包含nusoap.php所需库文件,以及24个实用例子

    NuSOAP工具包

    NuSOAP是一组功能强大的PHP类,可以方便得创建和使用SOAP消息服务。为基于PHP开发Web Service提供了强大的开源支持。工具包中含源码和例子。使用nusoap只需引用nusoap.php即可,命令如下: include_once("lib/nusoap...

    nusoap.php

    利用:nusoap.php 可以用类的方式访问WEB SERVICE;对应BLOG文章可以参考:http://blog.csdn.net/xocom/article/details/52188799

    nusoap-0.9.5.zip

    NuSOAP 是 PHP 环境下的 WEB 服务编程工具,用于创建或调用 WEB 服务。它是一个开源软件,当前版本是 0.9.5 ,支持 SOAP1.1 、 WSDL1.1 ,可以与其他支持 SOAP1.1 和 WSDL1.1 的系统互操作。 NuSOAP 完全由PHP语言...

    php 利用 nusoap 生成 webservices

    利用nusoap 生成webservices详细实例,保罗服务器端和客户端

    nusoap:修复了适用于PHP 5.6-8.0的NuSOAP

    它是一组PHP类-不需要PHP扩展-允许开发人员创建和使用基于SOAP 1.1,WSDL 1.1和HTTP 1.0 / 1.1的Web服务。 :joystick: | :laptop: | :bird: 所有学分均属于官方作者,请查看信息支持PHP: 最新版本: 开发版本: ...

    nusoap参考手册,API

    nusoap参考手册,nusoap参考手册,nusoap参考手册,nusoap参考手册

    nusoap:修复了适用于PHP 5.6-8.0的NuSOAP

    它是一组PHP类-不需要PHP扩展-允许开发人员创建和使用基于SOAP 1.1,WSDL 1.1和HTTP 1.0 / 1.1的Web服务。 :joystick: | :laptop: | :bird: 所有学分归官方作者所有,请查看 信息 支持PHP: 最新版本: 开发...

    PHP使用NuSOAP调用Web服务的方法

    本文实例讲述了PHP使用NuSOAP调用Web服务的方法。分享给大家供大家参考。具体如下: Steps: 1. Download nusoap library from internet. 2. Pass parameter list in your $client-&gt;call and enjoy. &lt;?php ...

    Nusoap的入门及使用介绍

    NuSOAP 是 PHP 环境下的 WEB 服务编程工具,用于创建或调用 WEB 服务。它是一个开源软件,当前版本是 0.7.2 ,支持 SOAP1.1 、 WSDL1.1 ,可以与其他支持 SOAP1.1 和 WSDL1.1 的系统互操作。 NuSOAP 完全由PHP语言...

Global site tag (gtag.js) - Google Analytics