Jan 07, 2016
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
1
SERVICIO WEB EN ANDROID
Objetivo:
Disea, implementa aplicaciones de Android consumiendo los servicios web
Herramientas:
Web Services IIS (Internet Information Services) ksoap2 Para Android Eclipse Para Android Jdk 8.0
Ejercicio 1
1. Crear una aplicacin de Android que permita sumar 3 nmeros diferentes consumiendo un servicio web
Solucin 1
INTERNET INFORMATION SERVICES
1. En la unidad C:, dentro de la carpeta: inetpub / wwwroot
2. Crear la siguiente carpeta:
Crear una carpeta con el nombre: WebSumatoria
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
2
3. Activar el IIS (Internet Information Services)
4. Se muestra la siguiente pantalla:
Digitar: IIS
Clic en: Administrador de Internet Information Services (IIS)
Clic derecho en: Default Web Site
Clic en la opcin: Quitar
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
3
5. Se muestra la siguiente pantalla:
DIRECTORIO VIRTUAL
1. En el panel: Conexiones, clic derecho en el icono: Sitios
Clic en la opcin: Si
Clic en la opcin: Agregar Sitio Web
Nombre del sitio: VirtualSuma
Clic en los 3 puntos consecutivos
Seleccionar la carpeta: WebSumatoria
Clic en: Aceptar
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
4
2. Se muestra la siguiente pantalla:
SERVICIO WEB
1. Activar el Visual Studio como Administrador
Clic en: Aceptar
Directorio Virtual: VirtualSuma
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
5
2. Se muestra la siguiente pantalla:
3. De la barra de mens, seleccionar la opcin: Archivo
4. Se muestra la siguiente pantalla:
Clic en: Nuevo Sitio Web
Clic en: Visual Basic
Clic en: Net Framework 3.5
Clic en: Servicio Web Asp Net
Clic en: Http
Clic en: Examinar
Clic en: IIS Local Clic en: VirtualSuma
Clic en: Abrir
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
6
5. Clic en el botn: Aceptar 6. Renombrar:
7. Se genera el siguiente mtodo web: Suma
8. Grabar el proyecto 9. En el explorador de soluciones, clic derecho en el proyecto:
10. Se muestra el siguiente mensaje:
11. En el explorador de soluciones, clic derecho en el proyecto:
Clic en: Generar Sitio Web
Clic en: Publicar Sitio Web
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
7
12. Se muestra la siguiente pantalla:
13. Se muestra el siguiente mensaje:
14. Clic derecho en: Services.asmx
Clic en: Aceptar
Clic en: Ver en el explorador
Clic en el vnculo: Suma
Ingresar los valores a los parmetros
Clic en: Invocar
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
8
15. Se muestra la siguiente pgina:
APLICACIN ANDROID
1. Crear una carpeta con el nombre: AndroidSW01 (En el escritorio) 2. Activar el Eclipse
3. Se muestra la siguiente pantalla:
Clic en: Browse
Clic en la carpeta: AndroidSW01
Clic en: Aceptar
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
9
4. Se muestra la siguiente pantalla:
5. Se genera un nuevo proyecto:
Clic en: OK
Clic en: New Android Application
Application Name: AplicaSumaSW01 Project Name: SumaSW01
Package Name: com.aplicaSumaSW01
Seleccionar: Android 4.3
Clic en: Next
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
10
Clic en: Next Clic en: Next
Clic en: Next
Nombre de la Actividad: Ejemplo01
Clic en: Finish
Fondo de la actividad
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
11
6. Diseo de la actividad:
AGREGANDO EL ARCHIVO EXTERNO KSOAP2
1. En la carpeta: Koas Para Android
2. En el eclipse:
Copiar el archivo: Ksoap2
En la carpeta: libs pegar el archivo Ksoap
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
12
3. Codificando en el archivo: Ejemplo01.java, se generan los siguientes objetos:
4. Se vinculan los objetos de java y XML
5. Cdigo del botn: Nuevo (En Java: btn1 / en XML: btnuevo)
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
13
6. Cdigo del botn: Calcular (En Java: btn2 / en XML: btcalcular)
Se Declara 4 variables:
MTODO => Mtodo del web service a tratar
NAMESPACE => El namespace declarado en el webservice, por defecto
tempuri.org
URL => La url con la que se comunicar.
SOAP_ACTION => NAMESPACE + METODO
7. Se declara un hilo con el nombre: nt
Se declaran 2 variables La primera variable rs de tipo String La segunda variable Mtodo de tipo String la cual almacena el nombre del mtodo
web
Se declara una variable NameSpace de tipo String, la cual almacena el Namespace del Servicio Web
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
14
8. Se declara la siguiente variable:
Se genera la peticin (request) para el mtodo: Suma. Para ello se genera un nuevo
objeto SoapObject pasndole el namespace y el nombre del mtodo web. A esta
peticin tendremos que asociar los parmetros de entrada mediante el
mtodo addProperty() al que pasaremos los nombres y valores de los parmetros
(que en nuestro caso se obtendrn de los cuadros de textos)
Se declara una variable: URL, la cual contiene la direccin Web, se puede invocar con el localhost o con el nmero de IP
Se declara una variable NameSpace de tipo String, la cual almacena el Namespace ms el mtodo Suma
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
15
9. Se genera al objeto: request de tipo: SoapObject
Se genera el contenedor SOAP (envelope) y asociarle nuestra peticin. Para ello se
crea un nuevo objeto SoapSerializationEnvelope indicando la versin de SOAP que
vamos a usar (versin 1.1)
Se Indica adems que se trata de un servicio web .NET activando su
propiedad dotNet
El objeto request, tiene 2 parmetros: NameSpace (Espacios de Nombres) Mtodo (Para El Mtodo Suma)
Se importa la clase: SoapObject
Con el mtodo: addProperty se agrega los parmetros v1, v2, v3 hacia el objeto request Los parmetros v1, v2, v3 sus valores provienen de los cuadros de textos: txt1, txt2 t txt3 respectivamente
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
16
Se asocia la peticin antes creada a nuestro contenedor llamando al
mtodo setOutputSoapObject().
Se genera al objeto que se encargar de realizar la comunicacin HTTP con el servidor, de tipo: HttpTransportSE, al que pasaremos la URL de conexin del
servicio web.
Se ejecuta el proceso realizando la llamada al servicio web mediante el mtodo: call().
Se genera un objeto envelope de tipo: SoapSerializationEnvelope, la cual se le indica la versin: VER11
Se importa la clase: SoapSerializationEnvelope
Con el mtodo doNet se le indica que es un servicio web de Visual Studio Net Con el mtodo: SetOutputSoapObject, los valores del request se almacenan hacia el objeto envelope
Se genera un objeto transporte de tipo: HttpTransportSE, la cual contiene a la variable URL Por medio del mtodo call de objeto transporte, se invoca a: Soap_Action= NameSpace+Metodo y al objeto envelope (contiene los valores de los parmetros)
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
17
10. Se importa a la clase: HttpTransportSE
Tras la llamada al servicio ya est en disposicin de obtener el resultado devuelto por el mtodo web llamado. Se consigue mediante el mtodo getResponse().
Dependiendo del tipo de resultado que esperemos recibir deberemos convertir esta respuesta a un tipo u otro.
En este caso, como el resultado que esperamos es un valor simple (un nmero entero) convertiremos la respuesta a un objeto SoapPrimitive, que directamente
podremos convertir a una cadena de caracteres llamado a toString().
11. Se importa la clase: SoapPrimitive
Se genera el objeto resultado de tipo SoapPrimitive, la cual devuelve el resultado por medio del mtodo: getResponse El valor se almacena hacia la variable rs
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
18
12. Se imprime el valor de la variable rs hacia el cuadro de texto:
13. Cortar y pegar la variable rs, donde de se declaran las variables:
14. Cdigo del botn Salir (En Java: btn3 / en XML: btsalir)
15. Grabar la aplicacin 16. En el archivo: AndroidManifest.xml (Archivo de configuracin)
Doble clic en el archivo: AndroidManifest.xml
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
19
17. Se muestra la siguiente pantalla:
Clic en: Permissions
Clic en: Add
Clic en: Uses Permission
Clic en: OK
INSTITUTO SUPERIOR PRIVADO PERUANO DE SISTEMAS SISE CARRERA PROFESIONAL DE COMPUTACIN E INFORMTICA
DANIEL FERNANDO LOZA SANTA CRUZ CORREO: [email protected]
20
18. Seleccionar el permiso de internet
19. Grabar el proyecto
20. Crear el emulador
21. Ejecutar la aplicacin dentro del emulador
Clic en: Android.permission.INTERNET