我的应用程序使用 CakePHP (2.2.5) 从 SOAP 服务器获取数据。我将日志记录到 SoapSource.php 连接器以查看返回的 XML 并显示返回的数组:
$result = $this->client->__soapCall($method, array('parameters' => $tParams));
Logger::write('SOAP Last Response', $this->client->__getLastResponse(), 3, 'transaction');
Logger::write('SOAP Last Response Object', print_r($result, TRUE), 3, 'transaction');
但是我在日志中看到的是数组中缺少XML 中存在的两个(最近添加的)字段,特别是 RPList 之前的最后两个字段(此处格式化但逐字逐句):
<transactionResult>
<id>test</id>
<resultCode>0</resultCode>
<ReadScheduledRecordingsRsp>
<RecordingDefinitionList>
<RecordingDefinition>
<RDId>d8c16d8f-67c6-469a-83c3-d51d8f8859a9</RDId>
<Title>The Young and the Restless</Title>
<SeriesId>4422</SeriesId>
<KeepUntil>SpaceIsNeeded</KeepUntil>
<StartPadSeconds>0</StartPadSeconds>
<EndPadSeconds>0</EndPadSeconds>
<Frequency>EveryDay</Frequency>
<KeepAtMost>0</KeepAtMost>
<Priority>23</Priority>
<ShowType>Any</ShowType>
<AirtimeDomain>SpecificTime</AirtimeDomain>
<ChannelDomain>SpecificChannel</ChannelDomain>
<RPList>
...
其次是:
ARRAY
(
[transactionResult] => stdClass Object
(
[id] => test
[resultCode] => 0
[ReadScheduledRecordingsRsp] => stdClass Object
(
[RecordingDefinitionList] => stdClass Object
(
[RecordingDefinition] => Array
(
[0] => stdClass Object
(
[RDId] => d8c16d8f-67c6-469a-83c3-d51d8f8859a9
[Title] => The Young and the Restless
[SeriesId] => 4422
[KeepUntil] => SpaceIsNeeded
[StartPadSeconds] => 0
[EndPadSeconds] => 0
[Frequency] => EveryDay
[KeepAtMost] => 0
[Priority] => 23
[ShowType] => Any
[RPList] => stdClass Object
(
...
我猜我只是忘记或不知道该做什么,但我不知道是什么。只是很怀疑这两个不起作用的字段是刚刚添加的两个,但是我找不到任何枚举字段的地方。
WSDL 根本没有指定任何字段,只是在 transactionResult 中会有一堆数据。
在连接调用中,选项同样不指定任何字段。
在后端添加这两个字段之前一切正常,并且一切仍然正常,除了我看不到对象中的 2 个新字段。
有任何想法吗?