Inicio Android Acceso a Servicios Web SOAP en Android (1/2)

Acceso a Servicios Web SOAP en Android (1/2)

por sgoliver

En este primer artículo que vamos a dedicar a los servicios web dentro del Curso de Programación Android nos vamos a centrar en los servicios web que utilizan el estándar SOAP como mecanismo de comunicación.

A diferencia de otros tutoriales, no sólo vamos describir cómo acceder a este tipo de servicios desde una aplicación Android, sino que también veremos como crear un servicio web SOAP mediante ASP.NET para acceder a una base de datos SQL Server. De esta forma pretendo ilustrar la «arquitectura» completa de una aplicación Android que acceda a datos almacenados en un servidor de base de datos externo. Nota: Aunque intentaré aportar el máximo número de detalles, es imposible abarcarlo todo en un solo artículo, por lo que el texto supondrá unos conocimientos mínimos de Visual Studio y del lenguaje C#.

Como caso de ejemplo, vamos a crear una aplicación sencilla capaz de gestionar un listado de «clientes» que contendrá el nombre y teléfono de cada uno de ellos. Nuestra aplicación será capaz de consultar el listado actual de clientes almacenados en el servidor externo y de insertar nuevos clientes en la base de datos. Como siempre, se trata de un ejemplo muy sencillo pero creo que lo suficientemente completo como para que sirva de base para crear otras aplicaciones más complejas.

Como software necesario, en este caso utilizaré Visual Studio 2010 y SQL Server 2008 R2 para crear el servicio web y la base de datos respectivamente.  Podéis descargar de forma gratuita las versiones Express de ambos productos (más que suficientes para crear una aplicación como la que describiremos en este artículo) desde la web oficial de Microsoft. También es recomendable instalar SQL Server 2008 Management Studio Express, descargable también de forma gratuita desde esta web. Esta aplicación no es más que un gestor gráfico para acceder y manipular nuestras bases de datos  SQL Server con total comodidad.

Vamos comenzar por la base de todo el sistema, y esto es la base de datos a la que accederá el servicio web y, a través de éste, también la aplicación Android que crearemos más adelante. Para ello abrimos SQL Server Management Studio, nos conectamos a nuestro servidor SQL Server local, y pulsamos sobre la sección «Databases» del árbol de objetos que aparece a la izquierda. Sobre esta carpeta podemos acceder a la opción «New Database…» del menú contextual para crear una nueva base de datos.

sqlserver-new-database

En el cuadro de diálogo que aparece tan sólo indicaremos el nombre de la nueva base de datos, en mi caso la llamaré DBCLIENTES, y dejaremos el resto de opciones con sus valores por defecto.

sqlserver-new-database-2

Desplegamos el árbol de carpetas de nuestra recién creada base de datos DBCLIENTES y sobre la carpeta «Tables» ejecutamos la opción «New table…» para crear una nueva tabla.

sqlserver-new-table

Vamos a añadir sólo 3 campos a la tabla:

  • IdCliente, de tipo int, que será un código único identificativo del cliente.
  • Nombre, de tipo nvarchar(50), que contendrá el nombre del cliente.
  • Telefono, de tipo int, que contendrá el teléfono del cliente.
Marcaremos además el campo IdCliente como clave principal de la tabla, y también como campo de identidad autoincremental, de modo que se calcule automáticamente cada vez que insertemos un nuevo cliente.

sqlserver-diseno-tabla-identity

Con esto ya tenemos nuestra tabla finalizada, por lo que sólo nos queda guardarla con el nombre que deseemos, que para este ejemplo será «Clientes«.

Hecho, ya tenemos nuestra base de datos SQL Server creada y una tabla preparada para almacenar los datos asociados a nuestros clientes. El siguiente paso será crear el servicio web que manipulará los datos de esta tabla.

Para crear el servicio abriremos Visual Studio 2010 y crearemos un nuevo proyecto web en C# utilizando la plantilla «ASP.NET Empty Web Application«. En un alarde de originalidad lo llamaremos «ServicioWebSoap«.

nuevo-proyecto-web

Una vez creado el proyecto, añadiremos a éste un nuevo servicio web mediante el menú «Project / Add new item…«. Lo llamaremos «ServicioClientes.asmx«.

nuevo-servicio-web

Una vez añadido aparecerá en pantalla el código fuente por defecto del nuevo servicio web, que contiene un único método de ejemplo llamado HelloWorld(). Este método podemos eliminarlo ya que no nos servirá de nada, y además modificaremos el atributo WebService de la clase para indicar que el namespace será «http://sgoliver.net/» (en vuestro caso podéis indicar otro valor). Con esto, nos quedaría un código base como éste:

namespace ServicioWebSoap
{
    /// <summary>
    /// Summary description for ServicioClientes
    /// </summary>
    [WebService(Namespace = "http://sgoliver.net/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]

    public class ServicioClientes : System.Web.Services.WebService
    {
        //Métodos del servicio web
        //...
    }
}

Pues bien, dentro de esta clase ServicioClientes es donde añadiremos todos los métodos públicos que queramos tener accesibles a través de nuestro servicio web, siempre precedidos por el atributo [WebMethod] como veremos en breve. Para nuestro ejemplo vamos a crear tres métodos, el primero para obtener el listado completo de clientes almacenados en la base de datos, y los otros dos para insertar nuevos clientes (más adelante explicaré por qué dos, aunque adelanto que es tan sólo por motivos didácticos).

Antes de crear estos métodos, vamos a crear una nueva clase sencilla que nos sirva para encapsular los datos de un cliente. La añadiremos mediante la opción «Project / Add class…» de Visual Studio y la llamaremos «Cliente.cs«. Esta clase contendrá únicamente los 3 campos que ya comentamos al crear la base de datos y dos constructores, uno de ellos por defecto que tan solo inicializará los campos y otro con parámetros para crear clientes a partir de sus datos identificativos. El código de la clase es muy sencillo, y tan solo cabe mencionar que definiremos sus tres atributos como propiedades automáticas de C# utilizando para ello la notación abreviada {get; set;}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ServicioWebSoap
{
    public class Cliente
    {
        public int Id {get; set;}
        public string Nombre {get; set;}
        public int Telefono {get; set;}

        public Cliente()
        {
            this.Id = 0;
            this.Nombre = "";
            this.Telefono = 0;
        }

        public Cliente(int id, string nombre, int telefono)
        {
            this.Id = id;
            this.Nombre = nombre;
            this.Telefono = telefono;
        }
    }
}

Vamos ahora a escribir el primero de los métodos que haremos accesible a través de nuestro servicio web. Lo llamaremos NuevoCliente(), recibirá como parámetros de entrada un nombre y un teléfono, y se encargará de insertar un nuevo registro en nuestra tabla de clientes con dichos datos. Recordemos que el ID del cliente no será necesario insertarlo de forma explícita ya que lo hemos definido en la base de datos como campo autoincremental. Para el trabajo con la base de datos vamos a utilizar la API clásica de ADO.NET, aunque podríamos utilizar cualquier otro mécanismo de acceso a datos, como por ejemplo Entity Framework, NHibernate, etc.

De esta forma, el primer paso será crear una conexión a SQL Server mediante la clase SQLConnection, pasando como parámetro la cadena de conexión correspondiente (en vuestro caso tendréis que modificarla para adaptarla a vuestro entorno). Tras esto abriremos la conexión mediante una llamada al método Open(), definiremos el comando SQL que queremos ejecutar creando un objeto SQLCommand. Ejecutaremos el comando llamando al método ExecuteNonQuery() recogiendo el resultado en una variable, y finalmente cerraremos la conexión llamando a Close(). Por último devolveremos el resultado del comando SQL como valor de retorno del método web.

Como podéis ver en el código siguiente, los valores a insertar en la base de datos los hemos especificado en la consulta SQL como parámetros variable (precedidos por el carácter ‘@’). Los valores de estos parámetros los definimos y añadimos al comando SQL mediante el método Add() de su propiedad Parameters. Esta opción es más recomendable que la opción clásica de concatenar directamente la cadena de texto de la sentencia SQL con los parámetros variables, ya que entre otras cosas servirá para evitar [en gran medida] posibles ataques de inyección SQL. El resultado devuelto por este método será el número de registros afectados por la sentencia SQL ejecutada, por lo que para verificar si se ha ejecutado correctamente bastará con comprobar que el resultado es igual a 1.

[WebMethod]
public int NuevoClienteSimple(string nombre, int telefono)
{
    SqlConnection con =
        new SqlConnection(
            @"Data Source=SGOLIVERPC\SQLEXPRESS;Initial Catalog=DBCLIENTES;Integrated Security=True");

    con.Open();

    string sql = "INSERT INTO Clientes (Nombre, Telefono) VALUES (@nombre, @telefono)";

    SqlCommand cmd = new SqlCommand(sql, con);

    cmd.Parameters.Add("@nombre", System.Data.SqlDbType.NVarChar).Value = nombre;
    cmd.Parameters.Add("@telefono", System.Data.SqlDbType.Int).Value = telefono;

    int res = cmd.ExecuteNonQuery();

    con.Close();

    return res;
}

En el código anterior, podéis ver que hemos precedido el método con el atributo [WebMethod]. Con este atributo estamos indicando que el método será accesible a través de nuestro servicio web y podrá ser llamado desde cualquier aplicación que se conecte con éste.

La siguiente operación que vamos a añadir a nuestro servicio web será la que nos permita obtener el listado completo de clientes registrados en la base de datos. Llamaremos al método ListadoClientes() y devolverá un array de objetos de tipo Cliente. El código del método será muy similar al ya comentado para la operación de inserción, con la única diferencia de que en esta ocasión la sentencia SQL será obviamente un SELECT y que utilizaremos un objeto SqlDataReader para leer los resultados devueltos por la consulta. Los registros leídos los iremos añadiendo a una lista de tipo List<Clientes> y una vez completada la lectura convertiremos esta lista en un array de clientes llamando al método ToArray(). Este último array será el que devolveremos como resultado del método. Veamos el código completo del método:

[WebMethod]
public Cliente[] ListadoClientes()
{
    SqlConnection con =
        new SqlConnection(
            @"Data Source=SGOLIVERPC\SQLEXPRESS;Initial Catalog=DBCLIENTES;Integrated Security=True");

    con.Open();

    string sql = "SELECT IdCliente, Nombre, Telefono FROM Clientes";

    SqlCommand cmd = new SqlCommand(sql, con);

    SqlDataReader reader = cmd.ExecuteReader();

    List<Cliente> lista = new List<Cliente>();

    while (reader.Read())
    {
        lista.Add(
            new Cliente(reader.GetInt32(0),
                        reader.GetString(1),
                        reader.GetInt32(2)));
    }

    con.Close();

    return lista.ToArray();
}

Por último, como dijimos al principio, vamos a añadir un tercer método web con fines puramente didácticos. Si os fijáis en los dos métodos anteriores, veréis que en uno de los casos devolvemos como resultado un valor simple, un número entero, y en el otro caso un objeto complejo, en concreto un array de objetos de tipo Cliente. Sin embargo, ninguno de ellos recibe como parámetro un tipo complejo, tan sólo valores simples (enteros y strings). Esto no tiene mucha relevancia en el código de nuestro servicio web, pero sí tiene ciertas peculiaridades a la hora de realizar la llamada al servicio desde la aplicación Android. Por lo que para poder explicar esto más adelante añadiremos un nuevo método de inserción de clientes que, en vez de recibir los parámetros de nombre y teléfono por separado, recibirá como dato de entrada un objeto Cliente.

El código de este método, que llamaremos NuevoClienteObjeto(), será exactamente igual al anterior método de inserción, con la única diferencia de los parámetros de entrada, por lo que no nos detendremos en comentar nada más.

[WebMethod]
public int NuevoClienteObjeto(Cliente cliente)
{
    SqlConnection con = new SqlConnection(@"Data Source=SGOLIVERPC\SQLEXPRESS;Initial Catalog=DBCLIENTES;Integrated Security=True");

    con.Open();

    string sql = "INSERT INTO Clientes (Nombre, Telefono) VALUES (@nombre, @telefono)";

    SqlCommand cmd = new SqlCommand(sql, con);

    cmd.Parameters.Add("@nombre", System.Data.SqlDbType.NVarChar).Value = cliente.Nombre;
    cmd.Parameters.Add("@telefono", System.Data.SqlDbType.Int).Value = cliente.Telefono;

    int res = cmd.ExecuteNonQuery();

    con.Close();

    return res;
}

Y con esto hemos finalizado nuestro servicio web. Podemos probar su funcionamiento con la página de prueba que proporciona ASP.NET al ejecutar el proyecto en Visual Studio. Si ejecutamos el proyecto se abrirá automáticamente un explorador web que mostrará una página con todas las operaciones que hemos definido en el servicio web.

operaciones-ws

Si pulsamos sobre cualquiera de ellas pasaremos a una nueva página que nos permitirá dar valores a sus parámetros y ejecutar el método correspondiente para visualizar sus resultados. Si pulsamos por ejemplo en la operación NuevoCliente(string, int) llegaremos a esta página:

operaciones-nuevocliente

Aquí podemos dar valores a los dos parámetros y ejecutar el método (botón «Invoke«), lo que nos devolverá la respuesta codificada en un XML según el estandar SOAP.

operaciones-nuevocliente-res

Como podéis comprobar, en principio el XML devuelto no es fácil de interpretar, pero esto es algo que no debe preocuparnos demasiado ya que en principio será transparente para nosotros, las librerías que utilizaremos más adelante en Android para la llamada a servicios SOAP se encargarán de parsear convenientemente estas respuestas y de darnos tan sólo aquella parte que necesitamos.

En el siguiente artículo nos ocuparemos de la construcción de una aplicación Android que sea capaz de conectarse a este servicio web y de llamar a los métodos que hemos definido para insertar y recuperar clientes de nuestra base de datos. Veremos además cómo podemos ejecutar y probar en local todo el sistema de forma que podamos comprobar que todo funciona como esperamos.

Puedes consultar y/o descargar el código completo de los ejemplos desarrollados en este artículo accediendo a la página del curso en GitHub.

Curso de Programación Android en PDF

Este curso también está disponible en PDF. Descubre cómo conseguirlo…

¿Te ha sido de utilidad el Curso de Programación Android? ¿Quieres colaborar de forma económica con el proyecto? Puedes contribuir con cualquier cantidad, unos céntimos, unos euros, cualquier aportación será bienvenida. Además, si tu aportación es superior a una pequeña cantidad simbólica recibirás como agradecimiento un documento con la última versión del curso disponible en formato PDF. Sea como sea, muchas gracias por colaborar!

Más información:

También te puede interesar

38 comentarios

Acceso a Servicios Web SOAP en Android (2/2) | sgoliver.net blog 27/02/2012 - 19:21

[…] a Servicios Web SOAP en Android (2/2)Por sgoliver en 27/02/2012 en Android, Programación En el artículo anterior del curso vimos cómo construir un servicio web SOAP haciendo uso de ASP.NET y una base de datos […]

Responder
Desarrollo en Android | sgoliver.net blog 27/02/2012 - 19:30

[…] […]

Responder
WhiteOso 02/03/2012 - 13:50

Genial explicado

Esta primera parte no tenía duadas, pero aún así la repasé entera, voy a por la segunda parte-

Gracias y continua en esta línea que es genial

Responder
Acceso a Servicios Web REST en Android (1/2) | sgoliver.net blog 04/03/2012 - 18:31

[…] Android (1/2)Por admin en 04/03/2012 en Android, Programación En los dos artículos anteriores (éste y éste) del Curso de Programación Android nos hemos ocupado de describir la forma de construir un […]

Responder
Vierco 04/03/2012 - 20:11

Sencillamente genial, como siempre.

Responder
Kevin R. 05/03/2012 - 4:16

Muy buenas noches,

Durante varios días he estado leyendo sus tutoriales a base de Android y vi que los últimos que usted puso fueron los de Web Service SOAP y REST utilizando Visual Studio y SQL Server. Me gustaría saber si usted también va a poner un tutorial de los Web Service con MySql y PHP o algo por el estilo ya que no todos usamos SQL Server y a muchos de nosotros nos serviría de mucha ayuda. De antemano muchas gracias por la ayuda y espero su respuesta.

Responder
Victor Gerson 28/03/2012 - 2:29

Hola espero me puedan ayudar, e seguido los pasos para hacer el web service y corre bien en mi pc lo malo es que la aplicacion la estoy haciendo en una mac, entonces mi idea fue abrir el web service de la forma localhost:puerto/ServicioWeb… me aparece Bad Request – Invalid Hostname y no puedo acceder al servicio web localmente entonces quisiera poder abrir los servicios en la mac para despues seguir con la conexion de emulador de eclipse ojala me hayan entendido y me puedan ayudar gracias de antemano

Responder
juan carlos cortes 24/04/2012 - 13:43

Excelente explicacion…. quiero saber si es posible crear un webservices en eclipse
gracias

Responder
pelirroja191186 25/04/2012 - 21:48

hola juan carlos si es posible crearlo y es muy facil solo creas en un proyecto web dinamic una clase java y luego das nuevo webservice y ahi seleccionas las opciones correspondientes y ya te lo crea automatico, sino lo logras me avisas para ponerte un ejemplo.

escribo para ver si me pueden ayudar ya tengo el servicio web hecho y funciona perfectamente en local pero cuando lo quiero subir para publicarlo no me va, pienso que es algo que estoy haciendo mal a la hora de publicar pues lo que hago es subir la carpeta por ftp? es correcto, besito

Responder
adriaBcn 20/05/2012 - 21:10

pelirroja191186 podrias passar un ejemplo de lo que has dicho? muchas gracias.

despues tengo problemas porque tengo la base de datos en un pc y el servicio esta en otro…
y no consigo hacer la conexion, no se si es el connectionString que no esta bien o es que devo configurar el sqlserver2008

podrias hecharme una mano? gracias!

PD:geniales tus tutoriales!

Responder
Daniel Ramirez 12/06/2012 - 15:25

Buen día, tengo una duda y es si hay alguna forma de gestionar archivos vía ftp para traerlos al móvil y utilizarlos en mi aplicación, para esto ingresando con usuario y contraseña requeridos por el servidor ftp.

Responder
Poldon 12/06/2012 - 19:52

Buen dia, disculpa en lugar de usar visual studio se puede usar monodevelop servisios web??

Responder
Luis Arboleda 06/09/2012 - 4:04

Hola, Como puedo conectarlo con MYSQL, lo cambie todo para hacer una prueba pero en Data Source no se conectarlo utilizando HOST, Username, y Password.

Gracias de Antemano, Luis.

Responder
Fernando 30/09/2012 - 22:25

Esta excelente este tutorial, solo tengo una duda, por que cuando compilo en vstudio en la sentencia SqlConnection me tira error y me dice

Error 1 No se puede encontrar el tipo o el nombre de espacio de nombres ‘SqlConnection’ (¿falta una directiva using o una referencia de ensamblado?) c:\users\fernando\documents\visual studio 2010\Projects\ServicioWebSoap\ServicioWebSoap\ServicioClientes.asmx.cs 23 13 ServicioWebSoap

de antemano muchas gracias por tu ayuda

Responder
Rayco 15/10/2012 - 4:39

Muchas gracias por el tutorial. Eso si, en vez de ASP creo que hubiera sido mucho mejor opción haber usado alguna implementación Java de servicios web como por ejemplo Axis2. Las ventajas serían:
– Multiplataforma
– Open Source
– Con respecto a la aplicación Android, no hay que usar otro lenguaje distinto

PD: Prácticamente lo mismo se podría decir del SQL Server. Teniendo MySQL que es libre, multiplataforma y ampliamente extendido en servidores, no le veo mucho sentido utilizar SQL Server.

Responder
admin 15/10/2012 - 9:50

Hola Rayco, lo de «la mejor opción» es algo bastante relativo y personal. La mejor opción no es ninguna tecnología en concreto, sino aquella que mejor conoces y tienes disponible. No pongo en duda que tu mejor opción sea Java-Axis2-MySQL, es una solución tan válida y respetable como cualquier otra. Sin embargo, en mi caso particular, conozco mucho mejor la tecnología .NET y mi servicio de hosting es Windows/.NET/SQLServer, por lo que mi mejor opción es sin ninguna duda dicha plataforma. La idea de estos tutoriales no es imponer una tecnología concreta, sino proporcionar las bases generales para construir sistemas de comunicación entre aplicaciones Android y Servicios Web. Si conoces bien la plataforma Java-Axis2-MySql no deberías tener ningún problema para adaptar lo aquí explicado a dicha tecnología. Saludos.

Responder
Revol89 17/10/2012 - 8:19

Si alguno de ustedes tienen problemas al instalar el SQL Server, recomiendo que descarguen el Microsoft SQL Server 2008 Express con Tools (SQLEXPRWT_x64_ESN.exe) y sigan este link para su instalación. http://grendon.wordpress.com/2009/10/14/instalacion-de-sql-server-2008-express-edition-sobre-windows-7/

Responder
Revol89 18/10/2012 - 15:26

Excelente aporte. Un dato adicional. Si les genera un error de ‘SqlConnection’ se debe agregar la línea de código using System.Data.SqlClient; También, al realizar la conexión a la base de datos, se debe modificar le código en donde se define la instancia (la cual aparece al conectarse a SQL Server 2008). Se define de la siguiente manera @»Data Source= NOMBRE_DEL_EQUIPO\SENTENCIA_DEFINIDA;Initial Catalog=DBCLIENTES;Integrated Security=True»

Responder
hp 16/01/2013 - 0:56

buen tutorial, tengo una duda en el metodo web Nuevoclientesimple. yo estoy haciendo el servicioweb en visual basic 2010
pero en el return lista.ToArray() me marca el error siguiente:

Value of type ‘1-dimensional array of AndroidWSSoap.Cliente’ cannot be converted to ‘AndroidWSSoap.Cliente’.

Responder
Dídac 04/02/2013 - 15:36

Tutorial excelente como siempre!

Una cosilla, me funciona perfecto con emulador, pero si lo quiero probar desde un dispositivo real, mi teléfono por ejemplo, como se la IP que tengo que poner para que se logre realizar la conexión??, habría que cambiar algo más??

Gracias,
Saludos

Responder
Pablo L. 05/06/2013 - 16:39

Hola,

Enhorabuena por este portal y por tu trabajo. Estás siendo una ayuda fundamental para que termine de aficionarme a esto del Android. He seguido bastantes artículos del curso y este me está pareciendo especialmente interesante. En mi caso, uso MySQL, y tras mucho googlear, he conseguido configurar VS para que interactúe con las bases de datos MySQL de mi localhost. Sólo hay que hacer 3 o 4 cambios, pero es increíble lo mucho que me ha costado encontrar la solución final. Si hay alguien interesado, que me lo comente sin problemas.
Por cierto, he visto que las donaciones siguen «caídas». ¿Tienes pensado volver a activarlas? Muchas gracias y un saludo.

Responder
Androgel 07/06/2013 - 11:20

Hola a todos. Mis felicitaciones por este gran blog del cual aprende siempre más y más.

He realizado un servicio web tal y como lo describes aquí. Funciona correctamente ejecutandolo en visual studio y con el emulador de android. Entonces me decidí por publicarlo claro está. He utilizado IIS para ello, y lo publico sin problemas. El problema viene cuando quiero usarlo. En android (cuando lo ejecuto en una tablet) al enviar la petición al servidor web que contiene el servicio web, me lanza HTTP 405, y al querer conectarme a él mediante el uso de un navegador web introduciendo la URL, me dice «XML mal formado en linea 1 columna 2», en esa posición hay un %.
No se donde tengo que mirar esto, ya que yo no creo ningún xml (lo hará internamente SOAP).

Gracias de antemano y sigue adelante con el blog, es estupendo. :)

Responder
Androgel 10/06/2013 - 9:16

Hola de nuevo, como va la cosa :)

Por si a alguien le ocurre lo mismo que a mi, decir que ya lo he solucionado. El problema era del IIS, que utilizaba otra versión de Framework diferente a la que yo utilizaba. Para decirle que utilice la misma que nosotros (en mi caso la versión 4), debemos ir a consola de comandos y teclear lo siguiente (teniendo en cuenta que puede variar un poquito la ruta de mi equipo a la que podáis tener vosotros, y dentro de la carpeta hay varios Framework):

cd c:\WINDOWS\Microsoft.NET\Framework

dir

(ahora buscamos nuestro framework, en mi caso es el «v4.0.30319»)

cd v4.0.30319

aspnet_regiis.exe -i -enable

Reiniciamos y listo.

En mi caso di permisos al servicio web para que aceptara conexiones anonimas ya que me pedia el usuario y contraseña local donde está el servidor web (desde el administrador del IIS).

Espero que ayude y repara las donaciones ;)

Saludos.

Responder
Silver 09/08/2013 - 21:56

interesante siggue asi ayudando….genial el material

Responder
Notificaciones Push Android: Google Cloud Messaging (GCM). Introducción | sgoliver.net blog 18/08/2013 - 11:49

[…] servidora, con SQL Server a modo de almacén de datos, y aprovechando que ya hemos visto como crear servicios web SOAP y llamarlos desde aplicaciones Android, vamos a utilizar uno de éstos para la comunicación entre […]

Responder
Alvaro 08/09/2013 - 22:28

No me sale la plantilla ASP.NET Empty Web Application… ¿como puedo hacer para tenerla?

Responder
Damian 23/09/2013 - 19:56

Queria consultarte si es posible consumir un servicio WCF desde un cliente android!
Cualquier info adicional sera agradecida!
AHHH!!! me olvidaba, excelente blog!

Responder
teddy 08/01/2014 - 20:29

Excelente tutorial muchas gracias he aprendido arto solo leyendolo

Responder
sardius 27/02/2014 - 6:10

Mi felicitacioón muy bueno el texto. Un saludo.

Responder
Juan 05/06/2014 - 22:59

SOLUCION AL ERROR 400!!

primero que nada muchas gracias por el post fue muy util.

para los que recivan el error 400 tienen que seguir estos pasos:

There are three changes you might need to make.

Tell IIS Express itself to bind to all ip addresses and hostnames. In your .config file (typically %userprofile%\My Documents\IISExpress\config\applicationhost.config), find your site’s binding element, and add

Setup the bit of Windows called ‘http.sys’. As an administrator, run the command:

netsh http add urlacl url=http://*:8080/ user=everyone
Allow IIS Express through Windows firewall.

Start / Windows Firewall with Advanced Security / Inbound Rules / New Rule…

Program %ProgramFiles%\IIS Express\iisexpress.exe
OR Port 8080 TCP

Hecho en Windows 8 con Visual Studio 2013

Responder
Gabriela 15/06/2014 - 15:24

Qué pena que lo hicieras en Java…

Responder
Consumiendo Web Services con kSoap | Android… Notas de desarrollo. 19/08/2015 - 22:09

[…] Curso Android en Español SGOliver – kSoap Parte 1 Curso Android en Español SGOliver – kSoap Parte 2 […]

Responder
jeobel 18/09/2015 - 17:23

Hola he aprendido de este articulo y pude lograr consumir web Service para una aplicacion que hice en eclipse el año pasado (2014), ahora me toca agregar una campo de l web service en una base de datos SQL Server 2008 y es un dato de tipo image (como pasaria el dato en :
try {
transporte.call(SOAP_ACTION, envelope);
SoapObject resSoap = (SoapObject) envelope.getResponse();
listaPreguntas = new TriviaPreguntasInfo[resSoap
.getPropertyCount()];

for (int i = 0; i < listaPreguntas.length; i++) {
SoapObject ic = (SoapObject) resSoap.getProperty(i);
TriviaPreguntasInfo preg = new TriviaPreguntasInfo();
preg.idunidad = ic.getProperty(0).toString();
preg.idpregunta = ic.getProperty(1).toString();
preg.descripcion = ic.getProperty(2).toString();
preg.estado = ic.getProperty(3).toString();
listaPreguntas[i] = preg;

}
alguna idea de que si existe metodo que convierta el tipo de dato image( binary data) a imagen en un viewer de ejmplo que me den una idea?

Responder
Gustavo 26/10/2015 - 21:50

Excelente tutorial . Los felicito

Responder
Hector Polanco 17/03/2016 - 18:04

Hola, quiero enviar un objeto lleno de datos desde android hacia un webservice asp.net, el problema es que no tengo claro qué tipo de dato enviar o recibir, actualmente en el webservice agregue un parametro tipo dataset, pero desde la app ¿Qué envío?, intenté igualmente recibir un xml y enviar un resultset pero tampoco funcionó. Agradecería la ayuda. Saludos.

Responder
sergio 19/11/2016 - 15:54

hola, quisiera saber si la libreria KSOAP-android actualmente es aun usada para conectar a servicios web soap , que otras librerias se pueden usar para acceder a servicios web soap?

Saludos

Responder
Ana Rosa 04/10/2019 - 23:41

Buenas
Me gustaria saber si es posible tener un metodo en el WS de ese tipo:

[WebMethod]
public int NuevoClienteObjeto(Cliente[] cliente)
{….}

Intento mandar una lista de objetos desde una aplicacion android y quiero que mi servidor me reciba la lista de objetos.

Responder

Dejar un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. Aceptar Más Información

Política de Privacidad y Cookies