2013-06-19 24 views
0

我有webservice,当在浏览器中打开时显示一个xml文件。我连接到webser与这些线PHP-SOAP确定存在的方法

$client = new SoapClient("http://XXXXXXXXX/webservice/test?wsdl"); 

打印出$客户端将显示此:

SoapClient Object 
    (
     [_soap_version] => 1 
     [sdl] => Resource id #4 
) 

现在,我的问题是如何做我的用户在XML文件中的一些方法presnt只是通过观察xml文件?这是因为我想检索和验证一些数据然后操纵它。

我该怎么做?我做对了吗? PS:只是为了让事情摆在上下文中,我能够通过浏览器访问xml来查看它。不知何故,这是唯一给予我的东西。如果可以在PHP中玩游戏,那么我会很感激这些回复。

感谢

回答

4

如果你知道函数的名称,和该函数的参数可以调用func。

$client = new SoapClient("http://XXXXXXXXX/webservice/test?wsdl"); 
$info = $client->__soapCall('Name of function' array('param1' => 1, 'param2' => 2); 

如果你不知道的参数的准确名称,这将有助于

var_dump ($client->__getTypes()); 
+0

谢谢!这正是我需要的。只是为了澄清,括号内的例子。 [1] => struct method1 {int id;字符串用户名} ... ID和用户名是正确的参数? – oneofakind

+1

是的,这些是参数 – NemanjaLazic

+0

谢谢NemanjaLazic非常感谢您的回复。我现在的问题是检索数据,因为它仍然返回一个错误,说“处理时发生SoapFault异常:[soap:Server]故障。”但是,至于在这个线程中的问题,这是很好的。谢谢。但是,如果你能够阐明这一点,将非常感激。无论如何,再次感谢。 – oneofakind

1

检查php.net的SoapClient的文档:http://php.net/manual/en/class.soapclient.php

正如你可以看到有用于获取可用的功能的方法:SoapClient::__getFunctions

+0

跟进的问题..现在当我打电话它表示“处理过程中发生故障”。它可能是参数。我如何知道它的参数是什么? – oneofakind

+0

将呼叫包裹在“try ... catch”块中。 SoapFault通常包含这个问题。 也检查WSDL,它包含函数的参数。 – Fracsi

+0

我做了它只显示这个“SoapClient - > __调用('网聊',数组)”我仍然不知道这个调用需要什么参数。有没有办法通过在XML中查看?如果是这样,怎么样? – oneofakind

0

获得方法和参数

$client = new SoapClient("http://my_exposed_url?wsdl"); 
    var_dump($client->__getFunctions());  
    var_dump($client->__getTypes());