https://www.onvif.org/ver10/search.wsdl$this->client = new SoapClient($this->wsdl, array(
'trace' => true,
'exceptions' => true,
# 'cache_wsdl' => WSDL_CACHE_NONE,
'ssl' => array(
'verify_peer' => false,
'allow_self_signed' => true
),
'soap_version' => SOAP_1_2,
));
$this->client->__setLocation($service);
$params = array(
'Scope' => array(
'IncludedSources' => array('Token' => ''),
'Extension' => array(
'CameraUuid' => $CameraUuid,
'StartTime' => $StartTime,
'StopTime' => $StopTime,
),
),
'KeepAliveTime' => $KeepAlive
);
return $this->client->FindRecordings($params);
однако в wireshark я вижу такое body
<env:Body>
<ns2:FindRecordings>
<ns2:Scope>
<ns1:IncludedSources>
<ns1:Token />
</ns1:IncludedSources>
<ns1:Extension />
</ns2:Scope>
<ns2:KeepAliveTime>PT10S</ns2:KeepAliveTime>
</ns2:FindRecordings>
</env:Body>
в аналогичном же случае с этой wsdl
https://www.onvif.org/ver10/media/wsdl/media.wsdl
такая строчка без проблем передаёт параметры методу
return $this->client->GetStreamUri(array(
'StreamSetup' => array(
'Stream' => $stream_type,
'Transport' => array(
'Protocol' => $protocol,
),
),
'ProfileToken' => $profile
));
<env:Body>
<ns2:GetStreamUri>
<ns2:StreamSetup>
<ns1:Stream>RTP-Unicast</ns1:Stream>
<ns1:Transport>
<ns1:Protocol>TCP</ns1:Protocol>
</ns1:Transport>
</ns2:StreamSetup>
<ns2:ProfileToken>1892abb3d4c0e916b79a2fe02f338069</ns2:ProfileToken>
</ns2:GetStreamUri>
</env:Body>
Никак не могу понять, почему в первом случае параметры не передаются нормально, а во втором - передаются?