以下代码中的$ response变量为NULL,即使它应该是SOAP请求的值也是如此。 (潮汐表)。当我调用$ client-> __ getLastResponse()时,我从SOAP服务获得正确的输出。
有人知道这是怎么回事吗?谢谢! :)
这是我的代码:
$options = array(
"trace" => true,
"encoding" => "utf-8"
);
$client = new SoapClient("http://opendap.co-ops.nos.noaa.gov/axis/webservices/highlowtidepred/wsdl/HighLowTidePred.wsdl", $options);
$params = array(
"stationId" => 8454000,
"beginDate" => "20060921 00:00",
"endDate" => "20060922 23:59",
"datum" => "MLLW",
"unit" => 0,
"timeZone" => 0
);
try {
$result = $client->getHLPredAndMetadata($params);
echo $client->__getLastResponse();
}
catch (Exception $e) {
$error_xml = $client->__getLastRequest();
echo $error_xml;
echo "\n\n".$e->getMessage();
}
var_dump($result);
最佳答案
$result
(或对SoapCall的响应)是null
的原因确实是因为WSDL无效。
我只是遇到了同样的问题-WSDL表示响应应该是PackageChangeBatchResponse
,但实际的XML返回具有PackageChangeResponse
更改WSDL以匹配响应/更改响应以匹配WSDL解决了该问题
关于php - SoapClient返回 "NULL",但是__getLastResponse()返回XML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17441335/