PHP:SoapClient不再按预期工作

PHP:SoapClient不再按预期工作,php,xml,web-services,soap,soapui,Php,Xml,Web Services,Soap,Soapui,我对PHP不是很有经验,但大约一个月前,我编写了一个脚本,从SOAP Web服务中提取事件数据,显示在数字标牌上。几周来它一直运转良好,但最近坏了 以下是相关的PHP代码… $WSDL_URL = 'http://anprodca.active.com/uofg/servlet/ActiveNetWS?wsdl'; $params = array( "ws_system_user" => $credentials, "resource_ids" => array(i

我对PHP不是很有经验,但大约一个月前,我编写了一个脚本,从SOAP Web服务中提取事件数据,显示在数字标牌上。几周来它一直运转良好,但最近坏了

以下是相关的PHP代码…

$WSDL_URL = 'http://anprodca.active.com/uofg/servlet/ActiveNetWS?wsdl';

$params = array(
    "ws_system_user" => $credentials,
    "resource_ids" => array(intval($facilityID)),
    "dates" => $date,
    "include_linked_resources" => 0,
    "returning_render_customer_id" => 0
);

$soap = new SoapClient($WSDL_URL);
$response = $soap->wsGetResourceBookings($params);
。。。使用数组中包含
用户名
密码
、和
保留有效期
值的
$credentials

当我得到它时,我得到以下异常消息:
看起来我们没有XML文档。我在stackoverflow上看到过类似的帖子,内容是关于由于不可见字符引起的错误响应问题,但这里的情况并非如此。
\uu getLastResponse()
的响应似乎是某种重定向的HTML


我仍然能够使用SOAPUI获得所需的结果。以下是它在从生成的请求中传递的XML的示例:

我以为文件已经更改了,但没有。
服务器端没有任何变化,它仍然使用相同配置的相同版本的PHP,等等。我尝试禁用WSDL缓存以及NuSoap库,但没有任何效果。我似乎不明白为什么我不能使用SOAP客户端返回正确的响应。如有任何见解,将不胜感激,谢谢

我自己就能够解决这个问题——只要把它贴出来,以防有人遇到类似的问题

他们的WSDL文件指定了错误的端点URL。我只需要使用
\uu setLocation()
显式指定它。现在我的PHP看起来像这样:

...
$soap = new SoapClient($WSDL_URL);
$soap->__setLocation($WSDL_URL);
$response = $soap->wsGetResourceBookings($params);
...

1行修复“来自_getLastResponse()的响应似乎是来自某种重定向的HTML”。。。如果服务突然给了你一个重定向,我不确定你希望这里的人帮你做什么。和管理它的人谈谈。也许他们限制了你呼叫的IP地址,也许他们完全做了其他的事情。“如果服务突然给你一个重定向,我不确定你希望这里的人帮你做什么”。。。我想弄明白为什么我可以使用SOAPUI而不是SoapClient/PHP获得有效的XML响应“也许他们限制了您从中调用它的IP地址”。。。如果SOAPUISOAPUI是一个客户端应用程序,那么它将无法工作——如果他们对服务器的IP地址设置了限制(不清楚您是否从其他地方尝试过SoapClient),那么它将不会对它产生任何影响。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:anw="http://ANWebServices/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ANWebServices/">
    <soapenv:Header/>
   <soapenv:Body>
        <anw:wsGetResourceBookings>
         <ws_system_user>
                <keepAlive>false</keepAlive>
            <password>password</password>
            <userName>username</userName>
         </ws_system_user>
         <resource_ids>
            <entries>27</entries>
         </resource_ids>
         <dates>09/25/2016</dates>
         <include_linked_resources>0</include_linked_resources>
         <returning_render_customer_id>0</returning_render_customer_id>
      </anw:wsGetResourceBookings>
   </soapenv:Body>
</soapenv:Envelope>
...
$soap = new SoapClient($WSDL_URL);
$soap->__setLocation($WSDL_URL);
$response = $soap->wsGetResourceBookings($params);
...