opensubscriber
   Find in this group all groups
 
Unknown more information…

p : php-es@lists.php.net 9 July 2009 • 1:30AM -0400

Re: [PHP-ES] Comunicar un xml con php.
by Jaime Vera Sobino

REPLY TO AUTHOR
 
REPLY TO GROUP




yo nunca he trabajado con certificados, pero lei en alguna parte que es
posible usar USER Y PASSWORD dentro de los argumentos para generar el
cliente, no se si es la solucion pero podrias probar si te sirve:

$com= new SoapClient('
https://www.aespd.es:443/agenciapd/axis/SolicitudService?wsdl<https://www.aespd.es/agenciapd/axis/SolicitudService?wsdl>',
array('trace' => 1, 'encoding' => 'UTF-8', 'user'=>$usuario,
'password'=>$password));

bueno, si te resulta envia la solucion para que aprendamos un poco mas :D

saludos :D



2009/7/8 Pablo Braulio <brulics@gmai...>

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Gracias por la ayuda, aunque de momento no lo he conseguido. :-(
>
> Este es el código que he probado.
>
> <?php
>  $xml= '<?xml version="1.0" encoding="ISO-8859-1"?> RESTO DE XML...';
>
> $param1= new SoapParam($xml, 'xml');
> $com= new
> SoapClient('https://www.aespd.es:443/agenciapd/axis/SolicitudService?wsdl
> ',
> array('trace' => 1, 'encoding' => 'UTF-8'));
> $respuesta= $com->probarXml($param1);
>
> $xmlrespuesta= simplexml_load_string($respuesta);
> var_dump($xmlrespuesta);
>
> ?>
>
> La función "probarXml" es una función que tienen en el server para hacer
> las pruebas, (según la documentación).
>
> Lo que ocurre en este caso, no usan usuario y contraseña sino un
> certificado. Esto dice la documentación:
>
> La invocación al servicio se realiza construyendo un cliente que acceda
> servicio, en cualquier tecnología, a partir de la descripción del mismo
> mediante el WSDL. El cliente deberá conectarse por https, puerto 443,
> para lo que necesitará el certificado del servidor “www.aespd.es ” que
> se remite con la documentación.
>
> Tengo el certificado, pero no se como añadirlo en el código.
>
> Lo que no me funciona (todavía) es la recogida de la respuesta con
> simplexml, pues hasta ahora he usado simplexml para leer un xml
> (simplexml_load_file). Lo que he puesto arroja el siguiente error.
>
>
> Warning: simplexml_load_string() [function.simplexml-load-string]:
> Entity: line 1: parser error : Start tag expected, '<' not found in
> /home/pablo/descargas/registroAepd/index.php on line 237
> Call Stack
> #       Time    Memory  Function        Location
> 1       0.0003  61856   {main}( )       ../index.php:0
> 2       1.0994  103004  simplexml_load_string ( )       ../index.php:237
>
> ( ! ) Warning: simplexml_load_string() [function.simplexml-load-string]:
>
> PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8RW52aW8gSWQ9IkFHUEQi
> in /home/pablo/descargas/registroAepd/index.php on line 237
> Call Stack
> #       Time    Memory  Function        Location
> 1       0.0003  61856   {main}( )       ../index.php:0
> 2       1.0994  103004  simplexml_load_string ( )       ../index.php:237
>
> ( ! ) Warning: simplexml_load_string() [function.simplexml-load-string]:
> ^ in /home/pablo/descargas/registroAepd/index.php on line 237
> Call Stack
> #       Time    Memory  Function        Location
> 1       0.0003  61856   {main}( )       ../index.php:0
> 2       1.0994  103004  simplexml_load_string ( )       ../index.php:237
>
> boolean false
>
> Gracias por la ayuda.
>
> Jaime Vera Sobino escribió:
> > yo lo he hecho de la misma forma en la que Jonathan describe
> >
> >
> > $xml = "<raiz><tag1>$dus</tag1><tag2>$guia</tag2></raiz>";
> > $param1 =  new SoapParam($xml, "xml");
> > $param2 =  new SoapParam($usuario, "usuario");
> > $param3 =  new SoapParam($password, "password");
> >
> > $client = new SoapClient("http://server/servicio.jws?WSDL",
> > array('trace' => 1, 'encoding' => 'UTF-8'));
> > $response = $client->metodo_servicio($param1, $param2, $param3);
> >
> >
> > luego procesas el $response con simplexml y listo.
> > ahora me encontrado con algunos matices con este codigo, para servicios
> > hechos en java funcionan impecable
> > pero para servicios hechos en .net el objeto SoapParam envia NULL, esto
> > lo solucione simplemente reemplazando
> > los objetos por arreglos asi:
> >
> > $xml = "<raiz><tag1>$dus</tag1><tag2>$guia</tag2></raiz>";
> >
> > $args = array("xml"=>$xml, "usuario"=>$usuario, "password"=>$password);
> > $client = new SoapClient("http://server/servicio.jws?WSDL",
> > array('trace' => 1, 'encoding' => 'UTF-8'));
> > $response = $client->metodo_servicio($args);
> >
> >
> > espero te sirva.
>
>
> - --
> Saludos cordiales.
> Pablo.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkpU0ZkACgkQK7lGsMchFsx2eQCfSHKQBFl7lp3m8AdfSTfvhE/S
> fPcAoLOyN8aOcvlTWY65o6Lo63Ye16I2
> =Slr1
> -----END PGP SIGNATURE-----
>



--
Jaime Vera Sobino
Ing. de Software, Genesys.
+56-41-2910730 anexo 217
jaime.vera@gene...

-- "Hay 10 Tipos de Personas: Las que saben binario y las que no." --

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

Related Messages

opensubscriber is not affiliated with the authors of this message nor responsible for its content.