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使用方法,经测试可以使用
php soap实例 php soap实例 php soap实例 php soap实例
本人在网上看了很多都不能很好的解析报文,就算解析也很难使用,我上传的这个里面将可以拼接soap,判断soap是否连接成功,返回接口的信息,再将报文解析,再转成java实体使用
PHP webservice SOAP解决Could not connect to host
soap.so linux下php驱动包 ,有些人无法打包,官方也没有提供下载。可以通过本地编译。 SOAP扩展 进入安装原php的源码目录, cd ext cd soap phpize ./configure --with-php-config=/var/php/bin/php-config (一定要...
php soap 这是soap技术,用来做api来,这也是经典的做法。
php soapclient 访问java service server
对于soap调用的测试程序 只需要编辑soap串即可调用测试
This extension will allow you to create soap servers and soap clients using php scripting language.
PHP的SOAP扩展可以用来提供和使用Web services。换句话说,PHP开发者可以利用这个PHP扩展来写他们自己的Web services,也可以写一些客户端来使用给定的Web services。
利用php curl 实现http post get 包括 SOAP 的发送的函数。 函数包括解决Cookie问题。 实用强大的函数,有了这个函数,做采集或者模拟登陆都很轻松了!
采用php soap扩展编写,可将内部接口整理后, 自写义对外转换接口 使用http与soap 可保存调用日志 与错误信息 soap调用第三方接口并处理 按自已规范统一返回数据 http 对外调用自已处理好的数据接口
php soap 实例 SOAP 是基于XML和HTTP通讯协议,XML各个平台,各种语言都支持的一种语言。 不同语言之间需要通信(例如:php,java,c),可以通过SOAP,WSDL使不同操作系统,不同技术的编程语言互相通信。
PHP实现的Web Services 完整...PHP.INI,请开启php_soap。 服务端:直接解压到网站根目录下,访问地址:http://localhost/hbj/wsdl.php?wsdl 客户端:http://localhost/hbj/Client.php ,显示hello world.表示成功。
webservice工具,针对wsdl、soap进行测试的小软件
SoapUI-5.2.1
测试SOAP注入
soap资料soap资料soap资料soap资料soap资料
PHP webservice教程,soap wsdl密码验证,webservice高级应用; 好用一定要给好评哦