百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> 详解php soap实现web service接口办事
分享文章到:

详解php soap实现web service接口办事

发布时间:09/01 来源:未知 浏览: 关键词:
web service是啥,不多说,可拜见百科说明web servicebaidu百科。

soap是一种和谈,属于web service实现所使用的一种技术标准。

web service的接口实现有两种方式,一种是需要生成wsdl文档的方式,一种是不需要生成wsdl文档的方式。

在实际操纵此前,先检查一下本人的环境,可否支撑soap,然后修改一下php.ini配置文件,将“soap.wsdl_cache_enabled”项设定为0。

无需生成wsdl文档的方式

这种方式相较于需要生成wsdl文档的方式,更简便一些,但是有一些办法并不支撑,例如猎取操纵办法的__getFunctions(),可否合用看本人的选中。

server端ts1.php

<?php
class testA{
        public function sayHi($str){
                return 'hi,'.$str;
        }
        public function add($a,$b){
                return $a+$b;
        }
}
$ss = new SoapServer(null, array('uri'=>'sampleA'));
$ss->setClass('testA');
$ss->handle();

在server端ts1.php文件中,创立了一个类,然后创立SoapServer并做设定,uri用来确保一致性。

client端tc1.php

<?php
$client = new SoapClient(null, array(
        'location'=>'http://10.0.0.232:1075/soap/ts1.php',
        'uri'=>'sampleA'
        ));
echo $client->sayHi('Taylor,Swift');
echo "<br/>";
echo $client->add(1,2);

在client端,使用SoapClient对象来停止恳求,location指明恳求的详细地址,uri的值与server端设定的一致,用来包管一致性。

在阅读器输入http://10.0.0.232:1075/soap/tc1.php来停止拜访,可以看到输出如下图所示:

5a948ab36df7014b8427db2eded86f0.png

这种方式无需生成wsdl文档,实现简捷,但一样的,由于没有wsdl文档,client也没法猎取到相关的操纵办法,而生成wsdl文档的方式,client端就可以独自按照一个恳求地址来猎取到server端公示的所有接口。

生成wsdl文档的方式

wsdl文档是一个xml文档,平常可以使用公示的类库SoapDiscovery来生成,我用baidu网盘同享一下需要可以直接下载SoapDiscovery.class.php。

server端ts2.php

<?php
define('WSDL_FILE','ts2.wsdl');
if(!file_exists(WSDL_FILE)){
        require_once('SoapDiscovery.class.php');
        $sd = new SoapDiscovery('testD', 'liang');
        $str = $sd->getWSDL();
        file_put_contents(WSDL_FILE, $str);
}
$ss = new SoapServer(WSDL_FILE);
$ss->setClass('testD');
$ss->handle();
class testD{
        public function sayHello($world){
                return 'hello,'.$world;
        }
        public function add($a, $b){
                return $a+$b;
        }
}

server端的ts2.php先检测了一下需要的wsdl文件可否存在,若不存在则创立,然后创立SoapServer对象并停止设定,由于使用的是wsdl文档,所以new SoapServer时直接写入wsdl文档的地址即可。

client端tc2.php

<?php
$client = new SoapClient('http://10.0.0.232:1075/soap/ts2.wsdl');
print_r($client->__getFunctions());
echo "<br/>";
echo $client->sayHello('Avril Lavigne');
echo "<br/>";
echo $client->add(9,8);

在client端的tc2.php文件中,创立SoapClient对象时,直接填入的是恳求的wsdl文档的地址,这个文档是由ts2.php生成的。

此刻,server端的ts2.php与client端的tc2.php都已经写好了,那么此刻就需要恳求一下ts2.php了,为什么恳求它?

由于我们需要先通过ts2.php来创立wsdl文件,当然,只要在第一次的时候需要这样做,当wsdl文档创立好之后,就不需要再这样做了。

(假如后期修改了ts2.php,那还是需要删除掉旧的wsdl文档,然后从新恳求一下ts2.php用来生成新的wsdl文档。)

1、恳求ts2.php用来生成wsdl文档http://10.0.0.232:1075/soap/ts2.php。

2、恳求tc2.php查看返回结果:

f79ef26adf0511d4e3c0de9dcc26120.png

3、通过阅读器,直接拜访wsdl文档的地址,可以看到wsdl文档的详细内容:

ef1120086177a027bd83f4651c92c92.png

php soap也支撑各种其它的操纵,例如鉴权,头设定等,这些功效如有需要,可以参阅官方文档。

以上就是详解php soap实现web service接口效劳的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板