初学soap(无wsdl)
来源:互联网 发布:js json.parse 编辑:程序博客网 时间:2024/06/11 22:59
参考资料:
1.http://a138s.blog.163.com/blog/static/31474077201012494124536/
2个例子,第二个例子说明可以设置一个类的所有public方法供客户端调用!
2.http://blog.csdn.net/lyjtynet/archive/2008/11/04/3211741.aspx
对理论阐述清楚!本文也是按照他写的改改!还有些不明白的问题,若有大侠知之,告诉小弟!
==============================================================================
昨天学习了xmlrpc,是学zendframework一个例子时里面写的,还结合了smarty,理解了很长时间,调了很长时间才调好,有时间整理一下zendframework的资料吧,明天把xmlrpc弄个例子记这,东西忘得太快了!学东西不容易,忘东西快!
这东西就是调用远程文件的方法,按我个人想,
==============================================================================
目录结构:
c:/php (localhost)
----soap
----server-----server2.php
----client ------client2.php
server2.php:
<?php
/*无wsdl*/
function greet($param) {
$retval = 'Hello , '.$param;
//这样包装信息,看起来似乎是value,key的形式,但是返回接收后也可以echo出来
return new SoapParam($retval, 'greetReturn');//或者直接
//return $retval;
}
function greet2($param) {
$retval = 'nihao , '.$param;
//这样包装信息,看起来似乎是value,key的形式,但是返回接收后也可以echo出来
return new SoapParam($retval, 'greetReturn');//或者直接
//return $retval;
}
class myclass{
public function makelove($mm){ //方法名要用public修饰才可以被调用到
$msg="I want to love ".$mm;
return new SoapParam($msg, 'msg');//或者直接
//return $msg;
}
}
//new 一个server实例
$server = new SoapServer(null, array('uri' => 'http://localhost/soap/server'));
//添加一个作为Web Services操作(operation)的函数
$server->addFunction('greet');//33
$server->addFunction('greet2');//34
//$server->setClass('myclass');//35
//设置一个类里面所有的public方法都可以被客户端调用,即作为Web Services操作(operation)的函数
//好像有setClass('')的操作,其他的$server->addFunction('');就失效,不知道为什么,请高人指点一二
//$soap->addFunction(SOAP_FUNCTIONS_ALL);
//加上后报错[Client] looks like we got no XML document in .....,高人路过请指点
//指示Web Service脚本开始处理进入的请求
$server->handle();
?>
client2.php:
<?php
/*无wsdl*/
try {
$client = new SoapClient(null,array('location' => 'http://localhost/soap/server/server2.php','uri' => 'http://localhost/soap/server'));
//echo $result = $client->__soapCall('greet', array(new SoapParam('chenlong', 'name'))); //或者直接
echo $client->greet("chenlong");//8
echo '<br>';
echo $client->greet2("chenlong2");//11
//echo $getmsg=$client->__soapCall('makelove', array(new SoapParam('my wife', 'name'))); //或者直接
//echo $client->makelove("my wife");//15
} catch (Exception $e)
{
printf("Message = %s/n",$e->__toString());
}
?>
访问: http://localhost/soap/client/client2.php
输出:
Hello , chenlong
nihao , chenlong2
注释server2.php里 33 ,34 ,放开35
注释client2.php里8,11,放开15
输出:
I want to love my wife
- 初学soap(无wsdl)
- php soap实例(一)无wsdl模式
- wsdl & soap
- Soap wsdl
- 初学SOAP
- SOAP ,WSDL 和UDDI
- SOAP,UDDI和WSDL
- SOAP,UDDI和WSDL
- SOAP, WSDL and UDDI
- wsdl 和 soap
- WSDL & SOAP & Web Service
- WSDL、SOAP、UDDI
- Studying python/SOAP/WSDL
- 什么是SOAP,UDDI,WSDL
- HTTP SOAP WSDL
- webservice wsdl和soap
- SOAP(wsdl)
- php wsdl SOAP WebService
- discuz下的wap
- Android高手进阶教程(三)之 ----Android 中自定义View的应用
- mysql时间戳与标准时间转换 【转】
- 不报错
- 认识Dojo中的界面控件:Dijit
- 初学soap(无wsdl)
- 如何创建 MFC 自动化客户端的 PowerPoint
- 交换a和b...
- JavaScript键盘键码值表
- 初学xmlrpc
- 数据库快照
- [转载]基于QEMU创建虚拟的U-boot和ARM Linux学习环境
- window.onload函数用法
- (2010-07-23)ORACLE的lpad函数、rpad函数用法