Re: [PHP-ES] Uso de SoapClient
[email protected] (Pablo Braulio)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
Tienes toda la razón. Pensaba que el xml se estaba pasando bien, pero no era asÃ. Hay que hacerlo como comentas. Muchas gracias por la ayuda. El 03/12/10 18:00, [email protected] escribió: > En realidad estás haciendo un uso incorrecto de la secuencia de > instrucciones, Pablo. > > La referencia a una variable $xml solo es para tu información, no para > que la uses como parámetro de paso al WebService. > > El código que deberÃas usar es como sigue (ojo al uso obligatorio de > WSDL o no, que debe indicártelo tu servidor. En este ejemplo es > "obligatorio".) > > <?php > try { > $options = array('soap_version'=>SOAP_1_2, > 'exceptions'=>true, > 'trace'=>1, > 'encoding'=> UTF-8, > 'cache_wsdl'=>WSDL_CACHE_NONE > ); > $client = new SoapClient('URL_WEBSERVICE?WSDL', $options); // p.e. > http://serv.php.net/WebServer?WSDL > $results = $client->CheckUser(array('user_email'=>'elusuario', > 'user_password'=>'lapassword')); > $respuesta = $client->__getLastResponse(); > } catch (Exception $e) { > echo "<h2>Exception Error!</h2>" . $e->getMessage(); > } > echo "<br>Respuesta:" . $results->CheckUserResult; > print_r($respuesta); > ?> > > Mucha atención porque estas dos últimas lÃneas son excluyentes... o usas > una o usas la otra. La primera hace referencia a una posible función de > retorno de los valores del WebService, mientras que la segunda, mostrará > todo el resultado de la respuesta. La ventaja de la primera sobre la > segunda es que podrás manejar variables independientes, mientras que en > el segundo caso, tendrás una salida "lineal" de todo el contenido. Para > empezar a probar, yo usuarÃa la segunda (poniendo a comentario la > primera) y luego irÃs refinando las respuestas usando la primera (y > comentando la segunda, claro). > > Espero haberte ayudado. Ya nos contarás. > > Un saludo. > > Fernando EguÃlaz > > ----- Original Message ----- From: "Pablo Braulio" <[email protected]> > To: "Lista de PHP en español" <[email protected]> > Sent: Thursday, December 02, 2010 4:50 PM > Subject: [PHP-ES] Uso de SoapClient > > >> Hola a todos. >> >> Estoy llamando a un webservice con SOAP y siempre obtengo como >> respuesta 0. >> >> El adminstrador del webservice me asegura que funciona perfectamente >> ya que ha probado con soapUI (herramienta para testear webservices) y >> responde correctamente. >> >> Ya no se si hay algo que no estoy haciendo bien, o que realmente no >> funciona bien el servidor. >> >> Os pongo el código: >> >> $xml= '<soapenv:Envelope >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >> xmlns:ecom="http://URL"> >> <soapenv:Header/> >> <soapenv:Body> >> <ecom:checkUser> >> <!--Optional:--> >> <user_email>USUARIO</user_email> >> <!--Optional:--> >> <user_password>XXXXXX</user_password> >> </ecom:checkUser> >> </soapenv:Body> >> </soapenv:Envelope>'; >> >> $com= new SoapClient('URL_WEBSERVICE'), array( >> 'trace'=> 1, >> 'encoding'=> 'UTF-8' >> )); >> >> $xmlRespuesta= $com->checkUser($xml); >> >> $respuesta= $com->__getLastResponse(); >> >> print_r($respuesta); >> >> Y lo que muestra: >> >> <?xml version="1.0" ?><S:Envelope >> xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:checkUserResponse >> xmlns:ns2="http://ecommerce.deyde.com/"><return>0</return></ns2:checkUserResponse></S:Body></S:Envelope> >> >> >> ¿Alguna idea?. >> -- >> Saludos cordiales. >> Pablo. >> >> Si lo reenvÃas, ten la precaución de borrar los datos de procedencia >> que encabezarÃan tu reenvÃo – empezando por mi dirección de correo >> electrónico - . Coloca siempre las direcciones de tus contactos en el >> campo <CCO> para que viajen discretas, no en el campo <Para> ni en >> el<CC>. De esa forma nadie que lo reciba tendrá constancia de las >> señas de los demás destinatarios a los que también se remite. Todo >> ello a fin de evitar que nadie se aproveche de todas las direcciones >> que se van acumulando al pasar de buzón a buzón para el lanzamiento de >> correo basura y otras indeseadas lindezas. Aparte claro está de >> garantizar la privacidad. >> >> >> >> Gracias. >> >> -- >> PHP Spanish Localization Talk Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> > > -- Saludos cordiales. Pablo. Si lo reenvÃas, ten la precaución de borrar los datos de procedencia que encabezarÃan tu reenvÃo – empezando por mi dirección de correo electrónico - . Coloca siempre las direcciones de tus contactos en el campo <CCO> para que viajen discretas, no en el campo <Para> ni en el<CC>. De esa forma nadie que lo reciba tendrá constancia de las señas de los demás destinatarios a los que también se remite. Todo ello a fin de evitar que nadie se aproveche de todas las direcciones que se van acumulando al pasar de buzón a buzón para el lanzamiento de correo basura y otras indeseadas lindezas. Aparte claro está de garantizar la privacidad. Gracias.