2017-03-06 43 views
10

我們剛搬到一臺新服務器上以獲得tls 1.2。新的服務器需要php 5.6。大部分我的代碼工作。有幾個例外。我有兩個來自不同供應商的SOAP API進程。一個正常工作,其他的返回此:什麼原因導致肥皂響應返回新服務器上的任何數據?

Error: [email protected] 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"; 
} 

此行是在新服務器上得到一致拋出相關的代碼。
回聲「錯誤:」。 $ runReportData。 「沒有返回數據」; $ runReportData是令牌值發生變化,所以我得到一個響應,但真正的數據不是這樣做的。它必須是某種服務器問題,只需要一點幫助就可以進行追蹤。

回答

6

答案是瘋狂的,並導致另一個問題。

服務器設置爲芝加哥時間。

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

因此,實際上我是問在未來的報表時沒有可用數據:如發現有以下的PHP腳本使用UTC。

新問題,爲什麼php使用UTC而不是服務器時間?在ini文件中,它被設置爲UTC!

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

希望這可以幫助別人節省一些時間!

+0

很好**眼睛**隊友,非常好的答案。 –