`
winphfar
  • 浏览: 47761 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Nusoap 学习笔记(一)

阅读更多

 

NuSOAP 是 PHP 环境下的 WEB 服务编程工具,用于创建或调用 WEB 服务,是php实现webservices的一个重要组成部分,我希望跟大家一起学习。

 

1.Hello World 的实现

hello world是应用最广泛的入门程序之一,先建服务端,代码如下:

 

<?
require_once("lib/nusoap.php");

function HelloWorld()
{
	return 'Hello,world';
}

$server = new soap_server;
$server->register('HelloWorld');
$server->service($HTTP_RAW_POST_DATA);

?>
 

 

HelloWorld()函数是一个服务程序,实际上就是返回一个"Hello,World!"的字符串;

$server 是一个服务对象,它是soap_server的一个实例;

register方法是注册被客户端访问的程序,参数是函数名称不带括号,函数的参数是作为register方法身的参数调用,下面有演示;

service是处理输入的数据,调用相对应的程序,返回给客户端。

 

综上,一个服务端的程序好了,下来就是客户端,代码如下:

 

<?
require_once("lib/nusoap.php");

$client = new soapclient('http://localhost/nusoap/server.php');

$string = $client->call('HelloWorld');
if(!$err = $client->getError()){
	echo "The program return:".htmlentities($string,ENT_QUOTES);
}
else
	echo "ERR:".htmlentities($err,ENT_QUOTES);

?>

 

 

$client 是一个soapclient的实例,地址用的是url不是相对地址;

call是调用web服务的程序,调用方式跟服务端的register方法基本一样;

getError检查掉用过程是否出错,没有错,返回的false,出错,返回出错信息。

 

在浏览器访问http://localhost/nusoap/client.php

得到输出的结果:Hello,World!

 

2.带参数和返回错误信息

服务端的程序代码如下:

 

<?
require_once("lib/nusoap.php");

function strings($string1,$string2)
{
	if(is_string($string1)&&is_string($string2))
		return "two strings:".$string1." and ".$string2;
		
	else
		return new soap_fault('Client','','two string required!');
}

$server = new soap_server;
$server->register('strings');
$server->service($HTTP_RAW_POST_DATA);

?>

 

 

 

 

code ,必填参数 , 建议值为“ Client ”或“ Server ”,指明错误是客户端的错误还是服务端的错误。 

 

faultactor ,预留项,现在还没有使用 

 

faultstring ,错误的描述信息 

 

faultdetail ,可选项, XML 格式的数据 , 说明详细的错误信息

 

 

 

客户端代码如下:

 

 

<?
require_once("lib/nusoap.php");

$client = new soapclient('http://localhost/nusoap/server1.php?',);
$parameters = array('Hello','world');

$string = $client->call('strings',$parameters);

if(!$err = $client->getError())
{
		echo "The server return:".$string;
}
else
	echo "ERROR:".$err;

?>

 

 

注意的是call的参数调用

 

 

 

3.创建支持wsdl的服务

 

服务端代码如下:

 

 

<?
require_once("lib/nusoap.php");

function strings($string1,$string2)
{
	if(is_string($string1)&&is_string($string2))
		return "two strings:".$string1." and ".$string2;
		
	else
		return new soap_fault('Client','','two string required!');
}

$server = new soap_server;
$server->configureWSDL('strings');
$server->register('strings',array("string1"=>"xsd:string",
"string2"=>"xsd:string"),array("return"=>"xsd:string"));

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)? $HTTP_RAW_POST_DATA:'';

$server->service($HTTP_RAW_POST_DATA);

?>
 

 

注意的是register的参数

通过http://localhost/nusoap/server1.php?wsdl  查看wsdl的内容如下图

 

wsdl

 

客户端代码如下:

 

<?
require_once("lib/nusoap.php");

$client = new soapclient('http://localhost/nusoap/server1.php?wsdl',true);
$parameters = array('Hello','world');

$string = $client->call('strings',$parameters);

if(!$err = $client->getError())
{
		echo "The server return:".$string;
}
else
	echo "ERROR:".$err;
	
echo '<p/>';
echo 'Request:';
echo '<pre>',htmlspecialchars($client->request,ENT_QUOTES),'</pre>';
echo 'Response:';
echo '<pre>',htmlspecialchars($client->response,ENT_QUOTES ),'</pre>';

	

?>

 

为了方便调试我加入了request和response来显示运行信息。在服务端加入$debug=1再在客户端加上

echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';即显示调试内容。

 

1
0
分享到:
评论

相关推荐

    nusoap.php下载,下载nusoap.php

    nusoap.php下载

    nusoap-0.9.5.zip

    4. **WSDL生成**:nusoap还支持自动生成WSDL(Web Services Description Language)文档,这是一种XML格式的规范,用来描述Web服务及其操作、输入/输出参数等。 5. **错误处理**:内置的错误处理机制,可以帮助...

    NUSOAP参考文档 PHP

    **NUSOAP参考文档 PHP** NUSOAP是一个开源的PHP库,专门用于构建Web服务...在学习和使用NUSOAP时,记得结合参考文档进行实践,以加深理解和掌握。同时,持续关注NUSOAP的更新和社区动态,以便获取最新的功能和修复。

    nusoap参考手册,API

    使用nusoap,你可以轻松地创建一个SOAP服务器。首先,你需要实例化nusoap_server对象,并定义处理请求的方法。例如: ```php require_once('nusoap.php'); $server = new nusoap_server; $server-&gt;configureWSDL('...

    nusoap-0.9.5及说明文档

    nusoap-0.9.5是该库的一个版本,包含了完整的源代码以及相关的说明文档,便于开发者学习和应用。 nusoap的核心功能在于它提供了一套完整的工具集,使得开发人员能够轻松地创建SOAP服务器和客户端。通过nusoap,你...

    nusoap.php及若干实例

    通过学习和实践压缩包中的实例,开发者不仅可以掌握nusoap.php的基本用法,还能深入了解SOAP协议和Web服务的原理。对于需要进行跨平台、跨语言通信的项目来说,nusoap.php无疑是一个强大且灵活的工具。 总之,...

    php 利用 nusoap 生成 webservices

    当我们需要构建可交互的Web服务时,PHP结合nusoap库可以成为一个强大的工具。nusoap是一个开源的PHP库,它允许开发者创建和消费SOAP(简单对象访问协议)服务,从而实现不同系统之间的数据交换和互操作性。以下将...

    PHP nusoap.php

    标题 "PHP nusoap.php" 指涉的是一个基于PHP的开源库——nusoap。这个库主要用于创建和消费Web服务,特别是那些基于SOAP(Simple Object ...通过学习和掌握nusoap.php,开发者可以增强他们创建和利用分布式系统的能力。

    NUSOAP 实例

    要与SOAP服务进行交互,可以创建一个NUSOAP_client实例,然后调用服务的方法。例如,如果有一个名为`getWeather`的服务,你可以这样使用: ```php require_once 'nusoap.php'; $client = new nusoap_client('...

    nusoap for php

    【nusoap for php】是PHP环境中用于构建SOAP(Simple Object Access Protocol)客户端和服务端的一个开源库。SOAP是一种基于XML的协议,它允许不同应用程序之间的数据交换,即使这些应用程序使用不同的编程语言或...

    php webservice类nusoap

    以下是一个简单的示例,展示了如何使用nusoap创建一个SOAP服务器和客户端: ```php // 创建SOAP服务器 require_once 'nusoap.php'; $server = new nusoap_server(); $server-&gt;configureWSDL('MyService', 'urn:...

    NuSOAP工具包

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

    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-0.7.2.zip

    开发者可以通过查看和学习这些源代码,了解nusoap的工作原理,以及如何扩展和定制其功能。 5. **历史影响与现状**: nusoap在早期的PHP Web服务开发中扮演了重要角色,但由于PHP社区的发展和官方对SoapClient类的...

    nusoap php webservices 类

    * I actually noticed that NuSOAP doesn't have very good documentation * and I was thinking of writing one. I am working on my site at * http://timba.host.sk/ and when I am through with it, I would ...

    php nusoap

    **一、什么是nusoap库?** nusoap是PHP的一个开源库,它允许开发者在没有现成SOAP客户端或服务器支持的情况下,快速构建SOAP服务。nusoap库包括了客户端和服务端的功能,使得PHP开发人员能够直接在PHP中处理SOAP...

    Building XML Web Services with PHP NuSOAP

    在构建XML Web服务时,PHP NuSOAP是一种非常实用的工具包,它简化了Web服务的创建与调用过程。本文将深入探讨NuSOAP在构建Web服务中的应用,并通过实例展示如何利用PHP NuSOAP来实现跨平台、跨语言的Web服务。 ### ...

Global site tag (gtag.js) - Google Analytics