Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/04/2010, 17:37
Nacho_astur
 
Fecha de Ingreso: abril-2009
Mensajes: 80
Antigüedad: 15 años
Puntos: 0
Respuesta: problema con echo

Si a ver k soy un poco pifias explicandome.

La estructura es la siguiente por un lado tenemos un servicio web de tipo REST y un cliente que consume dicho servicio web.

El cliente hace una peticion incluyendo en la URL una serie de parametros.
El serivicio web analiza dichos parametros y estudia que informacion devolver al cliente, la introduce en un array y la codifica en formato JSON, que no es mas que una manera de comprimir los datos. Hasta aki todo bien. El problema es que el servicio web tiene que devolver ese array de datos al cliente de alguna manera. Si el web service fuera una funcion, en vez de una pagina, haria "return $respuesta;" y ya estaba, pero al ser una pagina no se me ocurre como hacerlo.

Estuve mirando tutoriales y ellos siempre lo resuelven con un "echo $respuesta;" yo hice eso y lo unico que consigo es que en el navegador se muestre el array codificado, pero al cliente no le esta llegando nada :S

Este es la parte del scrip correspondiente al servicio web (solo lo relativo a la devolucion de la informacion en JSON):

$respuesta=array('Status'=>$errores,'Features'=>$d atos, 'Found'=>$num, 'Bounds'=>$posicion);

header('Content-type: application/json');

echo json_encode($respuesta);


Ahora pongo la parte de codigo correspodiente al cliente que hace la peticion:
*en la variable $url ya esta la url a invocar junto con sus parametros**

$ch = curl_init(); //creamos sesion

curl_setopt($ch, CURLOPT_TIMEOUT, 10); //indicamos las opciones
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$respuesta = curl_exec($ch);//llamamos al servicio web y recuperamos la informacion

print_r($responseBody);

curl_close($ch); //cerramos sesion

Muchas gracias y saludos, si consideras que necesitas mas informacion comentame