SlideShare una empresa de Scribd logo
Conexion a servidor desde android
Conexion a servidor desde android
¿Qué necesitamos?
Aplicación Android
Aplicación Web
Base de datos
Manos a la obra!
Flujo general
Usuario
ingresa
registro
Iniciar
conexión a
servidor
Enviar
registro
Recibir
registro
Almacenar
en base de
datos
Enviar
registros
almacenados
Recibir y
mostrar
registros
JSON
• JavaScript Object Notation
• Define un formato para el almacenamiento e
intercambio de información
• Alternativa a XML en AJAX
• Utilizado por Google, Yahoo, Facebook,
Twitter
• Información técnica:
– JSON Object
– JSON Array
JSON
• Ejemplo de JSON Array
• Ejemplo de JSON Object
• Ejemplo de JSON Array con JSON Object
["Elemento 1","Elemento 2"]
{ "Campo 1":"Valor 1" , "Campo 2":"Valor 2" }
{ "empleados": [
{ "nombre":"Juan" , "apellido":"Perez" },
{ "nombre":"Ana" , "apellido":"Gomez" },
{ "nombre":"Pedro" , "apellido":"Hernandez" }
] }
Transmisión de datos
¿Qué hay en el servidor?
• URL:
http://pruebaandroid.comyr.com/insertar.php
PHP
• Recepción de datos
• Envío de datos
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
insertarPersona($nombre, $apellido);
$arrPersonas = array();
llenarArreglo();
echo json_encode($arrPersonas);
¿Qué hay en Android?
Desarrollo de App
Permiso
Internet
Crear tarea
asíncrona
Inicializar
conexión
Agregar
parámetros
Post Get
Convertir a
string
Decodificar
JSON
Archivo manifiesto
• Agregar permiso de conexión a internet
<uses-permission android:name="android.permission.INTERNET"/>
Tareas asíncronas en Android
• AsyncTasks
public class Tarea extends AsyncTask<Params, Progress, Result>
{
protected Result doInBackground(Params... p)
{ }
protected void onPreExecute()
{ }
protected void onProgressUpdate (Progress... values)
{ }
protected void onPostExecute (Result result)
{ }
}
Comunicación con servidor
• Inicializar
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://pruebaandroid.comyr.com/insertar.php");
Comunicación con servidor
• Agregar parámetros para el Post
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("nombre", nombre));
nameValuePairs.add(new BasicNameValuePair("apellido", apellido));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Comunicación con servidor
• Ejecutar la petición POST:
• Obtener la respuesta del servidor:
• Transformar el InputStream a String, utilizando la
función convertStreamToString() tomada de:
– senior.ceng.metu.edu.tr
HttpResponse response = httpclient.execute(httppost);
InputStream is=response.getEntity().getContent();
String datos = convertStreamToString(is);
Decodificar datos JSON
• Crear un arreglo JSON vacío
• Crear un arreglo JSON a partir de un String
• Obtener dato del arreglo JSON
JSONArray jsonArreglo = new JSONArray();
try {
jsonArreglo = new JSONArray(strMisDatos);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
jsonArreglo.get(i).toString();
Código fuente disponible en:

Más contenido relacionado

PPTX
Presentación Plan Gimnasia Aeróbica Justiniano 2024.pptx
PPTX
Json short manual
DOCX
Informe de practica lorena 1
PDF
Evolución Android - DroidconMad 2014
PPTX
Concurrency with Promise Style – Rayco Araña
PPTX
Aplicaciones_Android_JPD.pptx
DOC
GUIA DE LABORATORIO PHONE GAP JQUERY MOBILE CARGADO DE_DATOS_DE_REGISTROS...
PPTX
Presentación Plan Gimnasia Aeróbica Justiniano 2024.pptx
Json short manual
Informe de practica lorena 1
Evolución Android - DroidconMad 2014
Concurrency with Promise Style – Rayco Araña
Aplicaciones_Android_JPD.pptx
GUIA DE LABORATORIO PHONE GAP JQUERY MOBILE CARGADO DE_DATOS_DE_REGISTROS...

Último (20)

DOCX
Las nuevas tecnologías en la salud - enfermería técnica.
PDF
La electricidad y la electrónica .pdf n
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
ACTIVIDAD 2.pdf j
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
clase auditoria informatica 2025.........
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
taller de informática - LEY DE OHM
PPTX
Yogurt de tocosh (1).pptx preparacion receta
PDF
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Administración se srevidores de apliaciones
PDF
diagrama de pareto.pdf valerie giraldo diaz
PDF
Estrategia de apoyo tecnología grado 9-3
Las nuevas tecnologías en la salud - enfermería técnica.
La electricidad y la electrónica .pdf n
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
ACTIVIDAD 2.pdf j
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
clase auditoria informatica 2025.........
REDES INFORMATICAS REDES INFORMATICAS.pptx
Influencia-del-uso-de-redes-sociales.pdf
taller de informática - LEY DE OHM
Yogurt de tocosh (1).pptx preparacion receta
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
Introduccion a servidores de Aplicaciones (1).pptx
Presentación PASANTIAS AuditorioOO..pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Administración se srevidores de apliaciones
diagrama de pareto.pdf valerie giraldo diaz
Estrategia de apoyo tecnología grado 9-3
Publicidad
Publicidad

Conexion a servidor desde android

  • 4. Manos a la obra!
  • 6. JSON • JavaScript Object Notation • Define un formato para el almacenamiento e intercambio de información • Alternativa a XML en AJAX • Utilizado por Google, Yahoo, Facebook, Twitter • Información técnica: – JSON Object – JSON Array
  • 7. JSON • Ejemplo de JSON Array • Ejemplo de JSON Object • Ejemplo de JSON Array con JSON Object ["Elemento 1","Elemento 2"] { "Campo 1":"Valor 1" , "Campo 2":"Valor 2" } { "empleados": [ { "nombre":"Juan" , "apellido":"Perez" }, { "nombre":"Ana" , "apellido":"Gomez" }, { "nombre":"Pedro" , "apellido":"Hernandez" } ] }
  • 9. ¿Qué hay en el servidor? • URL: http://pruebaandroid.comyr.com/insertar.php
  • 10. PHP • Recepción de datos • Envío de datos $nombre = $_POST['nombre']; $apellido = $_POST['apellido']; insertarPersona($nombre, $apellido); $arrPersonas = array(); llenarArreglo(); echo json_encode($arrPersonas);
  • 11. ¿Qué hay en Android?
  • 12. Desarrollo de App Permiso Internet Crear tarea asíncrona Inicializar conexión Agregar parámetros Post Get Convertir a string Decodificar JSON
  • 13. Archivo manifiesto • Agregar permiso de conexión a internet <uses-permission android:name="android.permission.INTERNET"/>
  • 14. Tareas asíncronas en Android • AsyncTasks public class Tarea extends AsyncTask<Params, Progress, Result> { protected Result doInBackground(Params... p) { } protected void onPreExecute() { } protected void onProgressUpdate (Progress... values) { } protected void onPostExecute (Result result) { } }
  • 15. Comunicación con servidor • Inicializar HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://pruebaandroid.comyr.com/insertar.php");
  • 16. Comunicación con servidor • Agregar parámetros para el Post List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("nombre", nombre)); nameValuePairs.add(new BasicNameValuePair("apellido", apellido)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  • 17. Comunicación con servidor • Ejecutar la petición POST: • Obtener la respuesta del servidor: • Transformar el InputStream a String, utilizando la función convertStreamToString() tomada de: – senior.ceng.metu.edu.tr HttpResponse response = httpclient.execute(httppost); InputStream is=response.getEntity().getContent(); String datos = convertStreamToString(is);
  • 18. Decodificar datos JSON • Crear un arreglo JSON vacío • Crear un arreglo JSON a partir de un String • Obtener dato del arreglo JSON JSONArray jsonArreglo = new JSONArray(); try { jsonArreglo = new JSONArray(strMisDatos); } catch (JSONException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } jsonArreglo.get(i).toString();