我们刚搬到新服务器获得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是更改的标记值,所以我得到了一个响应,但真正的数据没有成功。它必须是某种服务器问题,只需要一点帮助就可以跟踪它。
答案 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"
希望这有助于某人节省一些时间!