2010-02-13 15 views
6

Tengo una aplicación de cliente Java simple (aplicación de Android). Tengo que escribir una aplicación de servidor PHP que recibe una solicitud de la aplicación del cliente Java para escribir algunos datos en una base de datos MySQL o leer algunos datos de la base de datos MySQL. Debería responder con un mensaje de estado (Error de escritura/éxito) o los datos solicitados respectivamente.¿Cómo implementar la comunicación entre la aplicación de cliente Java (Android) y la aplicación de servidor PHP?

¿Cómo conseguiría que el cliente Java envíe una solicitud y reciba la respuesta del programa PHP y cómo el programa PHP recibirá la solicitud y enviará la respuesta? He buscado en Google las arquitecturas SOAP y REST, pero estoy buscando un tutorial simple que me permita implementar este sencillo programa.

Gracias.

Respuesta

6

Con la API Java SE básica puede usar java.net.URLConnection para iniciar una solicitud HTTP. Se puede encontrar un ejemplo básico de activación de una solicitud GET en Sun tutorial on the subject. Una solicitud POST no es muy diferente; en su lugar, solo necesita establecer URLConnection#setDoOutput() en true y escribir la cadena de consulta en URLConnection#getOutputStream() en lugar de en la URL.

Tenga en cuenta que se ejecuta de forma "perezosa", la solicitud solo se activará si realmente obtiene el flujo de respuesta por URLConnection#getInputStream(), aunque no lo necesite.

Si quiere un código menos detallado y/o más control sobre la solicitud, entonces puedo recomendar el uso de Apache Commons HttpComponents Client.

El programa PHP a su vez solo se puede escribir de la manera habitual. Obtenga los parámetros de solicitud por $_GET, $_POST y así sucesivamente y echo la respuesta. Nada especial necesita hacerse aquí. Sin embargo, puede considerar utilizar un formato de respuesta más fácil de analizar, como XML o JSON.

+0

Supongamos que hemos enviado una solicitud HTTP al programa PHP que recibe los parámetros $ _GET/$ _ POST, realiza algún procesamiento y desea repetir una cadena de caracteres "Procesamiento exitoso". ¿Simplemente echo echo $ string y el programa Java lo recibirá en InputStream de URLConnection? – user245120

+1

Eso es correcto. – BalusC

+0

Al ejecutar el script proporcionado en el tutorial, encuentro el error como aparece en la página http://stackoverflow.com/questions/2543106/fatal-error-by-java-runtime-environment pero no puedo adivinar el razón por la cual. – w2lame

1

Debe construir un servicio web REST simple basado en JSON o XML con PHP.

Luego, con el SDK de Android, puede usar el módulo HttpClient para conectarse a su servicio web. El SDK también proporciona un módulo JSON y XML para analizar el resultado.

Cuestiones relacionadas