我们刚搬到新服务器上获得1.2.新服务器需要php 5.6.在大多数情况下,我的代码有效.几个例外.我有两个来自不同供应商的SOAP API流程.一个工作正常,另一个返回:
Error: A847E54F5AEA4E798rt0.c.ie.o5DF59@4p7098Fs1lFf4v892c4m returned no data
Run Code Online (Sandbox Code Playgroud)
其中间部分是来自API的令牌,用于捕获响应中的数据流.问题是在收到令牌后,其余的响应都是空的.以下是基于此Five9的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";
}
Run Code Online (Sandbox Code Playgroud)
这条线在新服务器上不断被抛出.
echo"错误:".$ runReportData."没有返回数据"; $ runReportData是更改的标记值,所以我得到了一个响应,但真正的数据没有成功.它必须是某种服务器问题,只需要一点帮助来跟踪它.
答案令人抓狂,并导致另一个问题.
服务器设置为芝加哥时间.php脚本使用UTC,如下所示:
echo date('Y-m-d H:i:s', time());
Run Code Online (Sandbox Code Playgroud)
所以实际上我在将来没有可用数据时要求提交报告.
新问题,为什么php使用UTC而不是服务器时间?在ini文件中它被设置为UTC!
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "UCT"
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人节省一些时间!