Foros del Web » Programando para Internet » PHP »

php y xml

Estas en el tema de php y xml en el foro de PHP en Foros del Web. hola foro tengo que comunicarme con un ws pero no obtengo respuesta ya me canse de buscar espero ustedes puedan encontrar el error, les dejo ...
  #1 (permalink)  
Antiguo 16/07/2014, 17:33
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
php y xml

hola foro tengo que comunicarme con un ws pero no obtengo respuesta ya me canse de buscar espero ustedes puedan encontrar el error, les dejo el codigo gracias.

Código PHP:

<?php

require_once("nusoap/lib/nusoap.php");
$string = array('filedata' => " "); 

$pwd 'pwd';

$string['filedata'] ="<?xml version='1.0' encoding='UTF-8'?>
<transaccion>
    <c0>usuario</c0>
    <c1>"
.$pwd."</c1>
    <c2>xxx</c2>
    <c3>2014/07/16</c3>
    <c4>514</c4>
    <c5></c5>
</transaccion>"
;

  
$client = new SoapClient("https://url?wsdl"); 
 
  
$result=$client->__SoapCall("metodo",$string);   
    
  
$respuesta simplexml_load_string($result);

  echo 
"Contenido de respuesta" $respuesta "</br>";
  
?>
  #2 (permalink)  
Antiguo 16/07/2014, 17:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: php y xml

Y cuál es el mensaje de error?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 17/07/2014, 14:52
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
Respuesta: php y xml

No obtengo respuesta del ws de ningún tipo.
  #4 (permalink)  
Antiguo 18/07/2014, 11:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: php y xml

Intenta esto:

Código PHP:
Ver original
  1. $result=$client->__SoapCall("metodo",$string);    
  2.   if($result === false) {
  3.        var_dump($result); // Esta línea mostrará lo que recibiste del servidor
  4.        die('No se recibió un xml adecuado.');
  5.   }
  6.   $respuesta = simplexml_load_string($result);
  7.   // $respuesta es un objeto y no sirve de mucho hacer un simple echo
  8.   var_dump($respuesta);
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 21/07/2014, 16:48
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
Respuesta: php y xml

Agradezco mucho tu ayuda pero no obtengo ninguna respuesta voy a verificar que los datos de conexión estén bien ya se me hace raro que ni un error aparezca gracias.

Sabes que es lo interesante de todo esto, que a la hora de ejecutarlo aparece un error 500 en chrome no permanece solo aparece cuando cargas muchas veces la pagina pero en explorer no te deja ver nada y no marca error, si vez algún error de programación te agradeceré mucho si me dices cual es ya me canse de buscarlo.

GRACIAS.

Última edición por adrian_; 21/07/2014 a las 17:04
  #6 (permalink)  
Antiguo 21/07/2014, 20:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: php y xml

Cuando estás en fase de pruebas es conveniente enviar una salida al navegador, de forma que puedas localizar el error, ejemplo:

Código PHP:
Ver original
  1. echo 'Estableciendo conexión al servicio.<br />';
  2.     $result=$client->__SoapCall("metodo",$string);
  3.     echo 'Evaluando resultado.<br />';
  4.       if($result === false) {
  5.            var_dump($result); // Esta línea mostrará lo que recibiste del servidor
  6.            die('No se recibió un xml adecuado.');
  7.       }
  8.       echo 'Interpretando xml<br />';
  9.       $respuesta = simplexml_load_string($result);
  10.       // $respuesta es un objeto y no sirve de mucho hacer un simple echo
  11.       var_dump($respuesta);

Entonces, dependiendo del mensaje que veas, sabrás que en el siguiente bloque de código es donde está la falla.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 21/07/2014, 20:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: php y xml

Hola Adrian_ yo estoy en las mismas pero usando httpRequest, espero lo puedas resolver porque yo lo intente con SOAP y cURL y jamas recibi respuesta, hasta que lo estoy haciendo con httpRequest y ya me da el resultado, pero al parecer hay un error en el web service.

Saludos
  #8 (permalink)  
Antiguo 22/07/2014, 18:25
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
Respuesta: php y xml

Hola

Bueno despues de buscarle un buen rato, encontre que php tiene su libreira y que causa problemas con nusoap asi que intente con esto que encontre en internet mas lo que me han venido acosejando y ahora obtengo respuesta pero tengo un error que la verdad no veo si me ayudan a verlo les estare muy agradecido mi nuevo codigo es este.


Código PHP:
Ver original
  1. <?php
  2. require_once('nusoap/lib/nusoap.php');
  3.  
  4. $url = 'https://url?wsdl';
  5. $cliente = new nusoap_client($url, TRUE);
  6.  
  7. if($cliente == true)
  8.     {
  9.     echo "Cierto";
  10.     $string = array('filedata' => " ");  
  11.  
  12.     $pwd = 'pwd';
  13.  
  14.     $string['filedata'] ="<?xml version='1.0' encoding='UTF-8'?>
  15.         <metodo>
  16.             <t0>'user'</t0>
  17.             <t1>'".$pwd."'</t1>
  18.             <t2>'0123'</t2>
  19.             <t3>'22/07/2014'</t3>
  20.             <t4>'51'</t4>
  21.             <t5>'215'</t5>
  22.         </metodo>";
  23.    
  24.      $cliente = new nusoap_client($url, TRUE);
  25.  
  26.     echo 'Estableciendo conexión al servicio.<br />';
  27.     $result=$cliente->call("transacciones",$string);
  28.    
  29.     echo 'Evaluando resultado.<br />';
  30.       if($result === false) {
  31.            var_dump($result); // Esta línea mostrará lo que recibiste del servidor
  32.            die('No se recibió un xml adecuado.');
  33.       }
  34.       echo 'Interpretando xml<br />';
  35.       $respuesta = simplexml_load_string($result);
  36.       // $respuesta es un objeto y no sirve de mucho hacer un simple echo
  37.       var_dump($respuesta);
  38.     }
  39.     else
  40.     {
  41.     echo "falso";
  42.     }

y esta es la respuesta
Código PHP:
CiertoArray ( [t0] => xxx 
                     
[t1] => XXX 
                     
[t2] => xxx 
                     
[t3] => '22/07/2014' 
                     
[t4] => xx 
                     
[t5] => xxx 
Estableciendo conexión al servicio.
Evaluando resultado.
Interpretando xml 
Warning: simplexml_load_string() expects parameter 1 to be string, array given in C:\xampp\htdocs\webservices\1.php on line 92

NULL

Última edición por Triby; 22/07/2014 a las 19:09 Razón: Código en highlight
  #9 (permalink)  
Antiguo 22/07/2014, 19:20
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: php y xml

El var_dump($result); dentro del if no es tan útil (error mío), porque siempre que entre ahí, será falso.

Colócalo inmediatamente después de la llamada al servicio:

Código PHP:
Ver original
  1. $result=$cliente->call("transacciones",$string);
  2.      var_dump($result); // Esta línea mostrará lo que recibiste del servidor
  3.    
  4.     echo 'Evaluando resultado.<br />';
  5.       if($result === false) {
  6.            die('No se recibió un xml adecuado.');
  7.       }

Algo me dice que $cliente->call() devuelve el XML convertido en array.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 23/07/2014, 09:38
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
Respuesta: php y xml

Hola

Gracias por la ayuda, ahora me aparece este error al imprimir el resultado, ¿sabes a que se debe?

array(2) { ["faultcode"]=> string(11) "soap:Client" ["faultstring"]=> string(57) "Not enough message parts were received for the operation." }

Etiquetas: xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:56.