我想添加wsdl文件函数,它获取2个参数...我已经制作了复杂类型,但仍然没有好结果......任何人都可以解释,我做错了什么?
这里是
wsdl pastebin.com/JWnFUF1b
server: pastebin.com/aSbdRdRf
client: pastebin.com/4SLL0wWm
提前谢谢!
/ ****编辑**** /
服务器中的功能:
这里是我尝试简单测试必须获得功能的变量......首先是工作,第二是 - 没有...这就是为什么上面的主要代码被注释掉了
function votedBierOrNo($name,$user)
{
/*$voted = new VotedBierOrNo();
$data = $voted->votedOrNo($name,$user);
return json_encode($data);*/
return $user;
}
客户:
$client = new SoapClient("http://localhost/bierdb_service/bier.wsdl", array('cache_wsdl' => WSDL_CACHE_NONE,'trace'=>true));
echo ($client->__call("votedBierOrNo", array(
"bier_name" => "Infinium",
"user_id" => "12345"
)
)
);
答案 0 :(得分:0)
在PHP 5中,您可以在WSDL上使用SoapClient来调用Web服务功能。例如:
$client = new SoapClient("some.wsdl");
和$ client现在是一个对象,它具有some.wsdl中定义的类方法。因此,如果WSDL中有一个名为getTime
的方法,那么您只需调用:
$result = $client->getTime();
结果将(显然)在$ result变量中。您可以使用__getFunctions
方法返回所有可用方法的列表。
您想要在getFunctions的结果中调用的方法是什么?
另外,请看一下这个片段。这是使用复杂类型soap服务的人的示例代码:http://leifmadsen.wordpress.com/2009/08/04/consuming-soap-complextype-webservice-with-php/
您还可以考虑在其周围放置一个try / catch块,也许错误会指向正确的方向:
try {
// Your soap call
} catch(Exception $fault) {
var_dump($fault);
}