Soap问题- SoapFault异常:[Client]看起来像我们没有XML文档


Soap Issue - SoapFault exception: [Client] looks like we got no XML document

我看过类似的错误,我认为这很可能是由于BOM字符,但说实话,大多数其他编码是在不同的上下文中,我只是不理解它,我不熟悉soap,只是用它来提取数据,然后在php中格式化。

我的代码很简单:

$activityClient = xpmClient::getModuleInstance('activity', $remoteSessionId, 'xxx.5pmweb.com');
$filter = new stdClass();
$count = 300;
$offset = 0;
$activityList = $activityClient->getList($filter, $offset, $count);

现在服务器错误显示:

> PHP Fatal error:  Uncaught SoapFault exception: [Client] looks like we got no XML document in xxx/caching.php:59'nStack trace:'n  
'#0 xxx/caching.php(59): SoapClient->__call('getList', Array)'n  
'#1 xxx/caching.php(59): xpmClient->getList(Object(stdClass), 0, '371')'n  
'#2 /xxx/reports.php(296): include('/xxx/...')'n  
'#3 {main}'n  thrown in /xxx/caching.php on line 59

report.php上的第296行是caching.php文件的包含,该文件的第59行是

$activityList = $activityClient->getList($filter, $offset, $count);

这工作了几个月没有问题,所以我不知道什么改变了今天。任何想法如何剥离BOM,仍然得到我的数据到$activityList作为一个对象,所以我可以访问信息?

edit//

preg replace不工作,我猜那是因为一旦我调用$activityList服务器给出了一个致命的错误,之后不处理任何事情,所以我试图修复它后,它打破了,而不是之前。

How would i go about doing __getLastResponse()

我读了手册,但不明白如何结构它,我很确定我需要一个尝试捕捉的原因,我说怀孕取代不工作,但我尝试了一些变化,它什么也不做,我很确定结构是错误的,任何指针或想法?

我不知道为什么BOM会导致这个但是如果你想在这里删除BOM,你可以点击

function strip_bom( $str ) {
    return preg_replace( '/^('x00'x00'xFE'xFF|'xFF'xFE'x00'x00|'xFE'xFF|'xFF'xFE|'xEF'xBB'xBF)/', "", $str );
}

您正在使用的Soap服务器坏了。您是否检查过手动呼叫它?