入门级的讲讲soap这个php webservice
来源:互联网 发布:淘宝买家秀自慰器图片 编辑:程序博客网 时间:2024/06/05 05:50
今天我打算总结下php自带的soap类的使用,总结才有进步。
客户端代码:
1、通过开放的webservice获取天气预报数据
这里通过一个开放的提供soap webservice接口的网站说明下如何根据wsdl(什么是wsdl?)使用php调用现有的soap服务!
<?php/** * 从开放的天气预报服务中获得数据 ***/ $c = new SoapClient( 'http://www.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl', array( 'trace' => true, 'exceptions' => true ) ); //var_dump( $c->__getFunctions() );//var_dump( $c->__getTypes() );//不需要参数的情况$pr =$c->getRegionProvince();//var_dump( $pr->getRegionProvinceResult->string ); //带有参数的情况$scs = $c->getSupportCityString( array( 'theRegionCode' => '福建' ) );var_dump( $scs->getSupportCityStringResult->string ); //也可以这样做$we = $c->__call('getWeather', array( array( 'theCityCode' => 2210 ) ) );var_dump( $we );?>
2、如何实现php的soapServer和SoapClient
还是看代码不说话,我这里有个简单的例子,注意,实际应用中一定要对异常进行处理,否则不方便和php以外的程序通信。
这是服务端代码:
<?php$ss = new SoapServer( null, array( 'uri' => 'http://zendstudio.Net' ) );$ss->setClass( 't', '参数1', '参数2' );$ss->handle();//$request = file_get_contents( 'php://input' );//file_put_contents( 'request.txt', $request );class t{ function __construct( $p1, $p2 ){ } function im8( $g ){return 'OK----'. $g;} }?>
客户端代码:
<?php$ss = new SoapClient( null, array( 'uri' => 'http://zendstudio.Net', 'location' => 'http://localhost/soap.php' ) );$header = new SoapHeader( 'zendHeader', 'mmcYY', '12345678' );$ss->__setSoapHeaders( $header );echo $ss->im8( 'gently' ); ?>
3、如何在php的soap客户端和服务端添加SoapHeader头
实际上,上面的例子已经实现了在客户端添加SoapHeader,而服务端的添加SoapHeader同样的简单,实例化一个SoapHeader,然后使用SoapServer的addSoapHeader方法添加进去即可,这个头一般是学习php soap的一个难点,通常我们做的最多的是用soap的方式和其他程序通信,用php如何构造soapheader显得有些不容易,以至于依赖于这个头的服务端总是返回不正确。
4、从php的服务端如何获取SoapHeader
这个大概就是很多人认为php对soap支持不完整的一个原因,目前的php版本无法直接获取SoapHeader,因此我想了一个笨方法,先通过使用php://input,获取所有POST上来的数据,然后使用正则表达式分离出SoapHeader的XML部分,然后再整理出想要的格式。
另外,在PHP的SoapServer端可以通过转存$_SERVER和上面讲到的php://input获取soap的“原始”通信内容。
- 入门级的讲讲soap这个php webservice
- 【soap】利用php的soap实现webservice
- php soap webservice的实现
- PHP SOAP访问.net的webservice
- 使用php webservice(SOAP)的注意事项
- PHP soap 调用 JAVA发布的webservice
- 解决php soap webservice 用c++ soap调用的问题
- php webservice SOAP
- php wsdl SOAP WebService
- php---webservice soap
- php webservice SOAP
- webservice soap php接口
- PHP SOAP实现WebService
- webservice 之一 php SOAP
- php SOAP webservice
- 【soap】SOAP扩展PHP轻松实现WebService
- 讲讲php的魔术方法
- PHP使用SOAP做webservice
- 流形学习 manifold learning--自学小结(1)
- Apache Prefork和Worker模式的性能比较测试
- 时下,去哪寻觅坚贞爱情故事?
- Spring学习笔记 通过PropertyPlaceholderConfigurer来使用properties文件初始化Map类型属性
- 在dos中执行文件名的大小写有区别吗?
- 入门级的讲讲soap这个php webservice
- struts2通用标签
- Android开发XML文件解析
- 手动安装hibernate tools
- [JAVA/Android] String, StringBuilder, StringBuffer之间的关系
- 相当好的HTML5 抛砖引玉的文章
- JQuery自学记录2——部分动态效果
- 洒落在雨滴里的灵魂
- CreateCompatibleDC CreateCompatibleBitmap SelectObject