Web服务异常:无XML文档

时间:2017-01-07 06:46:25

标签: php web-services soap wsdl

我正在创建一个Web服务(我的服务器是ubuntu vm,不是使用WAMP或XAMPP)但有问题=异常:看起来我们没有XML文档。我已经搜索过互联网,但主要是肥皂异常,但我没有肥皂故障。这是一个普通的例外。它回应你好,但没有回应hi4,所以我猜问题可能在函数viewHealthDetails(在我的wsdl中),但我几乎可以肯定我的wsdl是正确的,因为我之前在另一个项目中使用过它。请帮忙。

if(isset($_POST['txtInput']))
{
    try
    {

    $input=$_POST['txtInput'];

    $wsdl='.../Search.wsdl';
    $options=array('cache_wsdl'=>WSDL_CACHE_NONE,'features'=>SOAP_SINGLE_ELEMENT_ARRAYS);

    $client=new SoapClient($wsdl,$options);
echo "hi";

    $response=$client->viewHealthDetails($input);

    echo "hi4";
    if(isset($response->HealthDetails))
    {

        $HTMLDocument="<!Doctype html>
        // My html code

    }
    else
    {
        echo "<h1>This Health type is not in our categories!</h1>";
    }
}
catch(Exception $e)
{

    echo 'Exception:'.$e->getmessage();


}
catch (SOAPFAULT $exception)
{
    echo 'SOAP Exception: '.$exception->getMessage();
}
}

    else
    {
    }

1 个答案:

答案 0 :(得分:0)

由于PHP无法正确处理响应XML,因此抛出此错误。要对响应进行故障排除,请将options数组设置为:

$options=array('cache_wsdl'=>WSDL_CACHE_NONE,'features'=>SOAP_SINGLE_ELEMENT_ARRAYS, 'trace' => 1);

然后在发出请求后使用var_dump($client->__getLastResponse());。这将允许您检查返回的XML并验证它的正确性。您可能会发现还有其他输出正在破坏XML。