PHP SOAP终于测验成功
PHP5已经支持soap了。可是不知怎么回事,网上的例子在我机器上总是通过不了。今天终于调通了,高兴!
PHP的SOAP很简单,首先建立一个函数文件soapfunc.php,这个文件包含了我们想通过SOAP协议暴露给Web services的函数:reverse,add2numbers和gettime,没有什么不同,就是普通的php函数,前两个就是网上到处都可以看到的,我自己又加了一个。这里,一定要注意规范php代码的格式,我的问题就是出在格式上了。
--------------------------------------------------------------------------------
<?php
function reverse($str){
$retval = '';
if(strlen($str) < 1) {
return new SoapFault('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 SoapFault('Client','','The first number is invalid');
}
if (trim($num2) != intval($num2)) {
return new SoapFault('Client','','The second number is invalid');
}
return ($num1 + $num2);
}
function gettime(){
$time=strftime("%Y-%m-%d %H:%M:%S");
return $time;
}
?>
--------------------------------------------------------------------------------
然后,编写soapserver.php,这个文件首先创建一个SoapServer对象实例,然后将我们要暴露的函数注册,最后的handle()用来处理接受到的SOAP请求。网上好多代码里面都没有这一行。
--------------------------------------------------------------------------------
<?
include_once('soapfunc.php');
$soap = new SoapServer(null,array('uri'=>"http://test-uri/"));
$soap->addFunction('reverse');
$soap->addFunction('add2numbers');
$soap->addFunction('gettime');
$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->handle();
?>
--------------------------------------------------------------------------------
最后,我们需要一个测试页面,来测一下我们的Web Service是否好用,soapclient.php
--------------------------------------------------------------------------------
<?
try {
$client = new SoapClient(null, array('location' =>
"http://localhost/phpsite/soap/soapserver.php",'uri' => "http://test-uri/"));
$str = "This string will be reversed";
$reversed = $client->reverse($str);
echo "If you reverse '",$str,"', you get '",$reversed,"'";
$n1=20;
$n2=33;
$sum = $client->add2numbers($n1,$n2);
echo "If you try ",$n1,"+",$n2,", you will get ",$sum,"";
echo "The system time is: ",$client->gettime();
} catch (SoapFault $fault){
echo "Fault! code:",$fault->faultcode,", string: ",$fault->faultstring;
}
?>
--------------------------------------------------------------------------------
测试页面首先创建一个SoapClient的实例,指定了该服务的URL和URI,SoapClient的构造函数第一个参数本应是指定WSDL(描述Web服务的公共接口)描述文件的,本来我也没看过WSDL的写法,所以就不采用wsdl方式定义了。
创建完SoapClient以后,就可以像本地函数一样调用Web Services了。
原文地址:http://www.nkstars.org/archive/beat/000520.html
分享到:
相关推荐
PHP内置了对SOAP的支持,通过`SoapClient`和`SoapServer`类来实现SOAP通信。`SoapClient`用于作为SOAP客户端,调用远程Web服务;`SoapServer`用于创建SOAP服务器,处理来自客户端的请求。 3. **创建SOAP服务器**:...
PHP SOAP 操作实例详解 SOAP(Simple Object Access Protocol),简单对象访问协议,是一种基于XML的协议,用于在不同网络环境下的应用程序之间交换数据。在PHP中,SOAP库提供了与SOAP服务器交互的能力,允许开发者...
本教程将围绕标题和描述中的关键知识点展开,包括如何拼接SOAP请求,判断SOAP连接成功,获取接口信息,解析SOAP响应报文,并将解析后的数据转换为Java实体。 首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息...
**SOAP服务测试工具——SoapUI-5.2.1** SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化信息。它允许服务提供商和消费者通过HTTP进行通信,使得数据交换变得标准化和易于...
PHP-SOAP扩展详解:构建Web服务的利器 在当今的互联网环境中,Web服务作为一种通信协议,使得应用程序之间能够交换数据并实现功能整合。PHP-SOAP扩展是PHP语言中的一个重要组成部分,它允许开发者创建SOAP(Simple ...
【PHP SOAP】是一种在PHP中实现Web...理解如何正确配置`SoapClient`和`SoapHeader`是成功使用PHP SOAP的关键。更多关于SOAP的信息可以在官方文档中找到,例如W3C的SOAP 1.2规范:http://www.w3.org/TR/soap12-part1/。
【PHP SOAP DEMO】是一个基于PHP的SOAP服务示例,它展示了如何在PHP环境中实现SOAP(Simple Object Access Protocol)客户端和服务端的应用。SOAP是一种用于在Web上交换结构化和类型化信息的协议,通常用于远程过程...
PHP webservice SOAP解决Could not connect to host
描述中的“示例”和“说明文件”表明这个压缩包可能包含一个完整的PHP SOAP服务端和客户端示例代码,以及解释如何运行和测试这些示例的文档。文件名“CreateSoap”可能是创建SOAP服务或客户端的示例脚本。 在实际...
soap.so linux下php驱动包 ,有些人无法打包,官方也没有提供下载。可以通过本地编译。 SOAP扩展 进入安装原php的源码目录, cd ext cd soap phpize ./configure --with-php-config=/var/php/bin/php-config (一定要...
PHP的SOAP扩展提供了SOAP客户端和服务器的功能,使开发者能够轻松地在PHP应用中实现SOAP通信。使用`SoapServer`类,我们可以创建一个SOAP服务器,而`SoapClient`类则用于与SOAP服务进行交互。这些类提供了处理WSDL...
本教程将聚焦于PHP的Web服务实现,特别是SOAP(Simple Object Access Protocol)协议以及WSDL(Web Services Description Language)的密码验证功能,这些都是Web服务高级应用的重要组成部分。 首先,我们要理解...
php soapclient 访问java service server
对于soap调用的测试程序 只需要编辑soap串即可调用测试
PHP实现的Web Services 完整...PHP.INI,请开启php_soap。 服务端:直接解压到网站根目录下,访问地址:http://localhost/hbj/wsdl.php?wsdl 客户端:http://localhost/hbj/Client.php ,显示hello world.表示成功。
SOAP 1.1 和 SOAP 1.2 区别详解 SOAP(Simple Object Access Protocol)是一种基于 XML 的轻量级协议,用于在网络上进行数据交换。SOAP 1.1 和 SOAP 1.2 是两个不同的版本,它们之间存在一些关键的区别。 首先,从...
标题中的“一个支持SOAP11和12规范的PHP客户端”指的是一个PHP开发的软件工具,它能够处理基于SOAP(Simple Object Access Protocol)1.1和1.2版本的Web服务请求。SOAP是一种用于交换结构化和类型化的信息的协议,常...
本篇将详细探讨如何使用JMeter进行SOAP接口测试,并通过提供的两个示例脚本——"soap接口测试适用jmeter3.2.jmx"和"soap接口测试适用jmeter3及以下版本.jmx"来进一步阐述。 首先,让我们了解JMeter的基础知识。...
//从soap目录导class.nusoap.php类文件 $client = new nusoap_client($url. "?WSDL", "wsdl"); $client->soap_defencoding = 'utf-8'; $client->decode_utf8 = false; $client->xml_encoding = 'utf-8'; ...