PHP-使用PHP如何获取WSDL中定义的方法列表

PHP-使用PHP如何获取WSDL中定义的方法列表

甜柠檬 发布于 2017-02-21 字数 146 浏览 1130 回复 3

我应用的场景是,从WSDL中读取定义好的所有方法的方法名,再将这些方法名形成一个列表在前端供用户选择来调用,不知道PHP有没有什么库是可以做到的?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泛泛之交 2017-07-19 3 楼

php有内置的函数__getFunctions ():

<?php
$client = new SoapClient ( './myfile.wsdl' );
var_dump ( $client -> __getFunctions ());
?>

SoapClient::__getFunctions

偏爱自由 2017-07-01 2 楼

通过PHP的反射机制应该也是可以的,我这里写了一个例子,不过由于没有wsdl文件,所以没有测试,思路应该就是这样,你拿去改改应该没有问题

<?php
$soap = @new SoapClient ('x.wsdl');
$reflector = new ReflectionObject($soap);
$functions = $reflector->getMethods(ReflectionMethod::IS_PUBLIC||ReflectionMethod::isProtected||ReflectionMethod::isProtected) as $method
var_dump($functions);

归属感 2017-02-28 1 楼

以下为我们最近接口的一个例子,这个例子的特点是应用了WSDL中的Header安全参数:

 <?php
$soapClient = new SoapClient("http://*****.wsdl",array('encoding' => 'UTF-8'));
$sh_param = array(
'Username' => '***',
'Password' => '***');
$headers = new SoapHeader('http://soapserver.example.com/webservices', 'UserCredentials', $sh_param);

// Prepare Soap Client
$soapClient->__setSoapHeaders(array($headers));
$body_param = array(
'ID' => '***',
'AAID' => '0',
);
$result = $soapClient->FUNCTIONS($body_param);

print_r($result);
exit;
?>