我必须执行很多SOAP请求。所以我在SoapUI中构建了一个完美无缺的请求。我点击了播放按钮并获得了预期的结果。
现在我想使用PHP创建相同的SOAP请求,但这不起作用。
WDSL文件的“连接”有效。当我执行__getFunctions
或__getTypes
时,它会按预期工作。
PHP-代码:
$wdsl = "http://MYSERVER/v2?wsdl";
$soap = new SoapClient($wdsl, array('soap_version'=>SOAP_1_2,"trace"=>1,'encoding' => 'UTF-8');
try {
$x =$soap->getHotelProduct($req);
} catch (SoapFault $e) {
echo $e->getMessage();
}
var_dump($x);
$ req是(在SoapUI中)工作请求。
执行脚本时出现的错误是:
object(stdClass)#2 (2) { ["Error"]=> object(stdClass)#3 (2) { ["_"]=> string(40) "The request contains an unknown AuthKey." ["Code"]=> int(1) } ["Success"]=> bool(false) }
但是:AuthKey绝对是正确的!我甚至从它工作的SoapUI复制并粘贴它。
希望有人在这里帮助我。
答案 0 :(得分:0)
请尝试以下方法。尝试使用__soapCall();
try
{
$x =$soap->__soapCall("getHotelProduct",array($req));
$x = (array) $x; //convert to array
}
// ..... //
var_dump($x);