NuSOAP简介 php中使用webservice

许多机构已经采用了Apach和PHP作为他们的Web应用环境。在Web services模式中采用PHP可能看上去可能会比较难。但是事实上,搭配NuSoap,你可以轻松的应用PHP构建SOAP的客户端和服务器端。

PHP SOAP服务器 
 用PHP和NuSoap来建立SOAP服务器非常容易。基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了。OK,另外还需要两步才能完成PHP SOAP服务器的建立。首先你还要在你的PHP代码中创建NuSoap对象的一个实例,然后用HTTP POST方法将原始数据传给NuSoap进行处理 
NuSOAP的使用比较简单,其中最常用到的类是soap_server和soapclient, 其中soap_server用于创建 Webservice服务,类soapclient则用于调用Webservice  .这两个类的定义都在lib/nusoap.php中,因此我们在创建 或调用Webservice接口程序时均需要引用该文件.

NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类,由NuSphere
Corporation(http://dietrich.ganx4.com/nusoap/  
)开发。NuSOAP的一个优势是不需要扩展库的支持,这种特性使得NuSoap可以用于所有的PHP环境,不受服务器安全设置的影响。  
 1. 
首先,去
http://sourceforge.net/projects/nusoap/  
下载
nusoap-0.9.5.zip ,解压后把 lib 文件夹放到与你的
WebService 程序相同的目录,如
/WebService/lib 。
  2.  服务端:建立 nusoapService.php 文件。

<?php
require_once ("lib/nusoap.php");
$server = new soap_server ();
// 避免乱码
$server->soap_defencoding = ‘UTF-8‘;
$server->decode_utf8 = false;
$server->xml_encoding = ‘UTF-8‘;
$server->configureWSDL ( ‘sayHello‘ ); // 打开 wsdl 支持
/*
    注册需要被客户端访问的程序
    类型对应值: bool->"xsd:boolean";            string->"xsd:string";
          int->"xsd:int";             float->"xsd:float";
*/
$server->register ( ‘sayHello‘, // 方法名
            array ("name" => "xsd:string" ), // 参数,默认为 "xsd:string";
            array ("return" => "xsd:string")// 返回值,默认为 "xsd:string";             );
//isset  检测变量是否设置
$HTTP_RAW_POST_DATA = isset ( $HTTP_RAW_POST_DATA ) ? $HTTP_RAW_POST_DATA : ‘‘;
//service  处理客户端输入的数据
$server->service ( $HTTP_RAW_POST_DATA );
/**
 * 供调用的方法
 * @param $name
 */
function sayHello($name) {
    return "Hello,  { $name } !";
}
?>

3.  客户端:建立 nusoapClient.php 文件。

<?php
require_once ("lib/nusoap.php");
/*
        通过 WSDL 调用 WebService
        参数 1 WSDL 文件的地址 ( 问号后的 wsdl 不能为大写 )
        参数 2  指定是否使用 WSDL
        $client = new soapclient(‘http://localhost/WebService/nusoapService.php?wsdl‘,true);
        */
$client = new soapclient ( ‘http://localhost/WebService/nusoapService.php‘ );
$client->soap_defencoding = ‘UTF-8‘;
$client->decode_utf8 = false;
$client->xml_encoding = ‘UTF-8‘;
// 参数转为数组形式传递
$paras = array (‘name‘ =>; ‘Bruce Lee‘ );
// 目标方法没有参数时,可省略后面的参数
$result = $client->call ( ‘sayHello‘, $paras );
// 检查错误,获取返回值
if (! $err = $client->getError ()) {
    echo " 返回结果: ", $result;
} else {
    echo " 调用出错: ", $err;
}
?>

注:   
用 nusoap 实现 WebService, 不要开启 php 的 SOAP 扩展   
  
  文件代码不能有任何输出  ,  否则调用时会报类似如下错误:    
 XML error parsing SOAP payload on line
x(  行号  ): Reserved XML Name

NuSOAP简介 php中使用webservice,布布扣,bubuko.com

时间: 2024-08-07 16:54:16

NuSOAP简介 php中使用webservice的相关文章

用JAXWS-RI在Tomcat中发布WebService

JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架.Axis2和CXF是目前最流行的Webservice框架,这两个框架各有优点,不过都属于重量级框架. JAXWS-RI是JAX WebService参考实现.相对于Axis2和CXF,JAXWS-RI是一个轻量级的框架.虽然是个轻量级框架,JAXWS-RI也提供了在Web服务器中发布Webservice的功能.官网地址https://jax-ws.jav

在java web项目中集成webservice

公司要求在项目中加入webservice服务,因为项目中使用了spring框架,所以在这里使用与spring兼容性较好的cxf来实现 cxf所需jar包 spring的jar包就不贴了 一:创建webservice服务器 1)创建一个服务接口 package com.service; import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface IHelloWorld { public S

AngularJS进阶(三十三)书海拾贝之简介AngularJS中使用factory和service的方法

简介AngularJS中使用factory和service的方法 AngularJS支持使用服务的体系结构"关注点分离"的概念.服务是JavaScript函数,并负责只做一个特定的任务.这也使得他们成为维护和测试的单独实体.控制器,过滤器可以调用它们作为需求的基础.服务使用AngularJS的依赖注入机制注入正常. AngularJS提供例如许多内在的服务,如:$http, $route, $window, $location等.每个服务负责例如一个特定的任务,$http是用来创建AJ

Jboss7.1中部署webservice的问题-1

(1)使用web容器模式在jboss中部署web service 通常会报无法找到相应的类的错误,(这里如果没有web.xml的话就无法部署也不会出现下面错误) Not installing optional component org.jboss.as.quickstarts.wshelloworld.OrderServiceImpl due to exception: java.lang.ClassNotFoundException: org.jboss.as.quickstarts.wsh

你真的了解JAVA中与Webservice相关的规范和实现吗?

非常多人在项目中使用Webservice,仅仅是知道怎样公布Webservice,怎样调用Webservice,但真要论其来龙去脉,还真不一定清楚. 一切一切还要从我们伟大的sun公司规范说起. JAVA 中共同拥有三种WebService 规范,各自是JAXM&SAAJ.JAX-WS(JAX-RPC).JAX-RS. 以下来分别简要的介绍一下这三个规范.针对JDK 1.6以下版本号,新的还没研究过 (1.)JAX-WS: JAX-WS(Java API For XML-WebService),

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', '

axis在eclipse 中生成webservice客户端

可以使用axis提供的Java2WSDL功能生成所要发布类的 WSDL,步骤如下: 1.在你的eclipse或myeclipse的项目中找到你引 的 axis.jar包,打开它,在其里面找到 org.apache.axis.wsdl下面的Java2WSDL类,然后以 Java application方式运行一下它 2.打开菜单栏"run -->"Debug  ,在弹出框的左边找到"Java Application 项,在其里面你会看 到"Java2WSDL 子

java web项目(spring项目)中集成webservice ,实现对外开放接口

什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring兼容性较好的cxf来实现 cxf 的  jar下载地址: http://cxf.apache.org/download.html 选择zip格式下载,解压后的lib目录下的jar 需要最少的jar如下: cxf-2.3.3.jargeronimo-annotation_1.0_spec-1.1.1.

C++程序中调用WebService的实现

前言 因为最近的项目中需要运用到在MFC程序中调用WebService里面集成好了的函数,所以特意花了一天的时间来研究WebService的构建以及如何在MFC的程序中添加Web引用,进而来实现在C++ MFC中调用那些WebService中写好的函数,中间也是遇到了一些不懂和不解的地方,好在通过度娘上的一些资料和自己的研究逐一的解决了,写这篇文章的主要目的是,第一:让自己记得更清楚,也方便以后不记得了可以及时回想起来.第二:让其他的一些和我碰到一样问题的朋友能更好的解决此问题.内容仅供参考,如