是什么导致soap响应在新服务器上没有返回数据?

时间:2017-03-06 19:35:53

标签: php soap centos6

我们刚搬到新服务器获得tls 1.2。新服务器需要php 5.6。在大多数情况下,我的代码有效。几个例外。我有两个来自不同供应商的SOAP API流程。一个工作正常,另一个返回:

Error: A847E54F5AEA4E798rt0.c.ie.o5DF59@4p7098Fs1lFf4v892c4m returned no data

这是API的一个标记,用于捕获响应中的数据流。问题是在收到令牌后,其余的响应都是空的。以下是基于此Five9's API: How to pull reports using SOAP API and Basic Authentication

的相关代码
$runReportResult = $client->runReport($runReportParam);

if(isset($runReportResult->return)){
    $runReportData = $runReportResult->return;
    $isReportRunningParam["identifier"] = $runReportData;
    $isReportRunningParam["timeout"] = 10;

    $isReportRunningResult = $client->isReportRunning($isReportRunningParam);

    if(empty($isReportRunningResult->return)){
        $getReportResultParam["identifier"] = $runReportData;
        $getReportResult = $client->getReportResult($getReportResultParam);
        if(isset($getReportResult->return->records)){       
            $getReportResultData = $getReportResult->return->records;

// data processing stuff removed for clarity

            } else {
            echo "Error: " . $runReportData . " returned no data";
        }
    } else {
        echo "Error: " . $runReportData . " exceeded the report runtime limit";
    }
} else {
    echo "Error: " . $runReportParam["reportName"] . " wasn't found";
} 

这条线在新服务器上不断被抛出 echo"错误:" 。 $ runReportData。 "没有返回数据&#34 ;; $ runReportData是更改的标记值,所以我得到了一个响应,但真正的数据没有成功。它必须是某种服务器问题,只需要一点帮助就可以跟踪它。

1 个答案:

答案 0 :(得分:8)

答案令人抓狂并导致另一个问题。

服务器设置为芝加哥时间。 php脚本使用UTC,如下所示:

echo date('Y-m-d H:i:s', time());

所以实际上我在没有数据可用的时候要求提供报告。

新问题,为什么php使用UTC而不是服务器时间?在ini文件中,它被设置为UTC!

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "UCT"

希望这有助于某人节省一些时间!