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

Posted

技术标签:

【中文标题】是啥导致soap响应在新服务器上没有返回数据?【英文标题】:what causes soap response to return no data on new server?是什么导致soap响应在新服务器上没有返回数据? 【发布时间】:2017-07-26 19:46:04 【问题描述】:

我们刚刚搬到新服务器以获取 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";
 

这条线一直在新服务器上抛出。 回声“错误:”。 $运行报告数据。 "没有返回数据"; $runReportData 是发生变化的令牌值,所以我得到了响应,但真实数据并没有做出来。它一定是某种服务器问题,只需要一点帮助来追踪它。

【问题讨论】:

【参考方案1】:

答案令人抓狂,引出了另一个问题。

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

希望这可以帮助某人在某天节省一些时间!

【讨论】:

以上是关于是啥导致soap响应在新服务器上没有返回数据?的主要内容,如果未能解决你的问题,请参考以下文章

返回 JSON 响应的 SOAP Web 服务的 URL 格式

CXF方式搭建本地webservice服务和soap方式调用踩坑

远程服务器返回错误:(502)错误的网关 是啥原因、?

Django:如何在新模板中的另一个模型上使用 CreateView 的 form_valid() 返回的响应?

WCF 如何根据请求决定何时返回 SOAP 或 JSON?

当 XML SOAP 响应中存在单个元素时,JSON 对象而不是数组