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

gor*_*i93 9 php soap

我创建了一个SOAP客户端,如下所示:

$client = new SoapClient("file.wsdl");
Run Code Online (Sandbox Code Playgroud)

然后当我想调用API函数时

$client->Authenticate("user", "password");
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

格式化程序在尝试反序列化消息时抛出异常:

对操作'Authenticate'反序列化请求消息体时出错.从命名空间' http://schemas.xmlsoap.org/soap/envelope/ ' 结束元素'Body' .从命名空间''找到元素'param1'.

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

["errorMessage"]=>
string(35) "ORA-01008: not all variables bound
Run Code Online (Sandbox Code Playgroud)

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

oez*_*ezi 10

你应该为参数传递一个数组并给出你的参数名称(可以在wsdl文件中找到).你的情况,其结果应该是这样的(假设参数的名称应param1param2该错误消息的基础上):

$client->Authenticate(array('param1'=>"user", 'param2'=>"password"));
Run Code Online (Sandbox Code Playgroud)