Pregunta

Tengo dificultades con la función de PHP SoapClient (). La solicitud SOAP es un éxito, pero la respuesta se devuelve como un objeto que contiene una sola cadena XML con la tecla "ninguna". Por ejemplo:

<?php
$params = array('strUsername' => 'Test',
                'strPassword' => 'Test');

$client=new SoapClient('http://www.example.com/webservice.asmx?wsdl',
                       array('features' => SOAP_SINGLE_ELEMENT_ARRAYS));

$result = $client->strExampleCall($params);
print_r($result);
?>

Esto muestra la siguiente información:

stdClass Object
(
    [strExampleCallResult] => stdClass Object
    (
        [any] => <Response xmlns="" release="1.0.0" environment="Production" lang="en-GB"><ApplicationArea><Sender><SenderId>0</SenderId><ReferenceId>0</ReferenceId></Sender><Destination><DestinationId>1</DestinationId></Destination></ApplicationArea><DataArea><Result>1</Result></DataArea></Response>
    )
)

A continuación, no puedo acceder a las propiedades del objeto como yo esperaría a:

echo $result->strExampleCallResult->Response->DataArea->Result;

¿Por qué no es PHP analizar la respuesta de SOAP en propiedades del objeto devuelto?

Estoy usando PHP 5.3.0 y creo que el servidor SOAP se está ejecutando .NET.

¿Fue útil?

Solución

Ahora he resuelto este.

El tercer servidor SOAP partido fue diseñado para devolver datos en formato XML, confiada a la respuesta SOAP. Ahora estoy analizar la respuesta XML con SimpleXML.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top