是什么导致肥皂响应无法返回新服务器上的数据



我们刚移至新服务器以获取TLS 1.2。新服务器需要PHP 5.6。在大多数情况下,我的代码工作。几个例外。我有来自不同供应商的两个SOAP API流程。一个工作正常,另一个返回以下内容:

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

中间部分是来自API的令牌,用于捕获响应中的数据流。问题是在收到令牌后,其余的响应为空。这是基于此五9的API的相关代码:如何使用SOAP API和基本身份验证

提取报告
$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";
} 

这条线在新服务器上始终被抛弃。
回声"错误:"。$ runreportdata。"没有返回数据";$ RunReportData是变化的令牌值,因此我得到了响应,但实际数据没有做到这一点。它必须是某种服务器问题,只需要一点帮助跟踪。

答案令人发疯,导致了另一个问题。

服务器设置为芝加哥时间。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"

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

最新更新