带参数的 PHP SOAP 客户端调用函数

标签 php soap

我像这样创建了一个 SOAP 客户端:

$client = new SoapClient("file.wsdl");

然后当我想调用 API 函数时

$client->Authenticate("user", "password");

我收到以下错误:

The formatter threw an exception while trying to deserialize the message:

Error in deserializing body of request message for operation 'Authenticate'. End element 'Body' from namespace 'http://schemas.xmlsoap.org/soap/envelope/' expected. Found element 'param1' from namespace ''.

但是当我尝试在数组中传递参数时,它起作用了,但是我得到了下一个错误:

["errorMessage"]=>
string(35) "ORA-01008: not all variables bound

我的问题是:如何将 PHP 中的参数传递给 SOAP 客户端?它们必须在数组中吗?

最佳答案

您应该为参数传递一个数组并给出您的参数名称(可以在 wsdl 文件中找到)。在您的情况下,结果应如下所示(根据错误消息假设参数名称应为 param1param2):

$client->Authenticate(array('param1'=>"user", 'param2'=>"password"));

关于带参数的 PHP SOAP 客户端调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11899706/

相关文章:

php - 如何衡量 Web 应用程序的可扩展性需求

xml - SQL Server 2008 查询 Soap XML

java - Wildfly 的 JAXWS 实现似乎忽略了 bindingProvider 属性 com.sun.xml.ws.transport.https.client.SSLSocketFactory

PHP numfmt_create 调用未定义的函数

php - 为什么这个 PHP 代码不起作用?

php - header ("Location: mypage.php") 上传到其他服务器后不工作

java - Java 中的 Web 服务,初学者问题

wcf - SOAP、JSON 和 POX 在同一个安静的 wcf 中

soap - 如何从命令行执行 SOAP wsdl Web 服务调用

php - 为什么POST请求返回404