我对 PHP 的内置 SOAP 客户端感到非常沮丧。似乎我在互联网上阅读的每一篇文章都表明我尝试过的每种代码变体都应该有效,但它们都没有。这是我的代码的简化版本的当前状态,但还有很多其他的。
$soapClient = new SoapClient("uReachWebServices.wsdl", array(
"trace" => true,
"soap_version" => SOAP_1_2,
));
$auth = array(
"PartnerId" => "hidden_from_StackOverflow",
"Password" => "hidden_from_StackOverflow",
);
$parameters = array(
phoneNumber => array("PIN" => "XXXX", "_" = "XXXXXXXXXXX"),
);
$header = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope", "Authentication", (object) $auth, false);
$soapClient->__setSoapHeaders($header);
try {
$soapClient->GetMailboxInfo((object) $parameters);
} catch (SoapFault $ex) {
ChromePhp::error($ex->getMessage());
ChromePhp::log($ex->getTraceAsString());
}
ChromePhp::log($soapClient->__getLastRequest());
ChromePhp::log($soapClient->__getLastResponse());
我正在尝试获取参数的以下输出...
<phoneNumber ns1:PIN="XXXX">XXXXXXXXXX</phoneNumber>
......但我尝试的一切最终都像以下之一......
<phoneNumber />
...或者...
<key>phoneNumber</key>
<value>xxxxxxxxxx</value>
...或者...
<phoneNumber ns1:PIN="XXXX" />
...或者我个人最喜欢的...
<param1><phoneNumber ns1:PIN="XXXX">XXXXXXXXXX</phoneNumber></param1>