据我所知,我需要将函数的参数作为数组的索引传递。我也明白参数的值是数组索引的对应值。但我不能让我的功能发挥作用。我将变量传递给WSDL中的函数,但我没有得到任何东西。
这是我的PHP代码:
try{
$soap_client = new SoapClient("https://foo.example.com:8443/current/bar?wsdl");
$log_in = array(
"iwsUsername" => "username",
"iwsSecretKey" => "secretKey",
"caller" => "JohnDoe",
"callerPassword" => "password"
);
//passing values into the function parameters above
$request = $soap_client->authenticatedPing($log_in);
echo $request->authenticatedPing;
} catch(SoapFault $exception){
echo '?????';
}
出于安全考虑,这些显然是假值,但你明白了。
以下是此函数的WSDL:
<wsdl:operation name="authenticatedPing">
<soap12:operation soapAction="" style="rpc"/>
<wsdl:input name="authenticatedPing">
<soap12:body namespace="http://www.example.com" use="literal"/>
</wsdl:input>
<wsdl:output name="authenticatedPingResponse">
<soap12:body namespace="http://www.example.com" use="literal"/>
</wsdl:output>
我做错了什么?
答案 0 :(得分:0)
以下只是一些评论 - 而不是答案 - 区分你在问题中得出的结论(所以这只是指出一些弱点,我知道我们没有Stackoverflow上有一个很好的SOAP,但我们至少以某种方式覆盖了它
据我所知,我需要将函数的参数作为数组的索引传递。
不,实际情况并非如此。在数组旁边,您还可以解析对象甚至元对象。数组表示法仅用于缩短其中一些,并且它遵循模糊规则 没有真正清楚记录。
举个例子:请为您的数组语句提供参考。提供一个链接,其中记录了何时,如何以及为什么以您的方式创建数组。
我也理解参数的值是数组索引的对应值。
同样,即使这个陈述也没有过分错误,你没有概述为什么在这种情况下并遵循哪些规则。
我将变量传递给WSDL中的函数,但我没有得到任何东西。
你得到的东西。找出更准确的内容。例如,什么是异常消息。
答案 1 :(得分:0)
非WSDL表单有效。感谢您的评论
$client = new SoapClient(
null,
array(
'location' => "https://************.com:*******/*****-=/iws",
'soap_version' => SOAP_1_2,
'uri' =>'http://www.*******.com',
'style' => SOAP_RPC,
'use' => SOAP_LITERAL
)
);