Foros del Web » Programando para Internet » Android »

WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Estas en el tema de WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien... en el foro de Android en Foros del Web. Hola foreros !!! Vereis... tengo un gran problema, y SOY INCAPAZ de encontrar la solución... Por eso me dirijo a vosotros, a ver si podeis ...
  #1 (permalink)  
Antiguo 19/01/2012, 15:33
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Hola foreros !!!

Vereis... tengo un gran problema, y SOY INCAPAZ de encontrar la solución... Por eso me dirijo a vosotros, a ver si podeis darme alguna ayuda rompedora con lo que me está pasando...

Vereis, hice un pequeño servicio web con WCF .NET, no sé si lo conocereis (Imagino que algunos sereis "anti microsoft"). Este Servicio tiene un método el cual recibe un objeto de tipo complejo comprueba una de sus propiedades y según lo que tenga, modifica su propiedad y lo devuelve.

Bien, es algo muy simple, os dejo el código del método.
Código:
        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {

            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            

            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }

            composite.StringValue += "data from server";
            return composite;
        }
Bien... la cuestión es que llamo a este método desde mi aplicación Android, y el método no entra por la excepción, pero... tampoco entra por el condcional (Cuando, obviamente, la proviedad va a true).

Por lo visto, las propiedades le llegan vacias, no obstante, el método devuelve el objeto a mi app Android, el cual lo recibe con las propiedades debidamente cambiadas desde el servidor...

SOAP ENVIADO
Código:

<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
  <v:Header />
  <v:Body>
    <GetDataUsingDataContract xmlns="http://tempuri.org/" id="o0" c:root="1">
      <composite i:type="n0:CompositeType" xmlns:n0="http://schemas.datacontract.org/2004/07/TicketoWS">
        <BoolValue i:type="d:boolean">true</BoolValue>
        <StringValue i:type="d:string">Probando</StringValue>
      </composite>
    </GetDataUsingDataContract>
  </v:Body>
</v:Envelope>

SOAP RECIBIDO
Código:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <GetDataUsingDataContractResponse xmlns="http://tempuri.org/">
      <GetDataUsingDataContractResult xmlns:a="http://schemas.datacontract.org/2004/07/TicketoWS" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <a:BoolValue>false</a:BoolValue>
        <a:StringValue>data from server</a:StringValue>
      </GetDataUsingDataContractResult>
    </GetDataUsingDataContractResponse>
  </s:Body>
</s:Envelope>
Por favor... ¿Alguien se le ocurre, por que las propiedades enviadas desde Android, mi servicio WCF no es capaz de interpretarlas?

Agredeceré cualquier cosa... Gracias.
__________________
Charlie.

Última edición por chcma; 19/01/2012 a las 15:41
  #2 (permalink)  
Antiguo 03/02/2012, 18:49
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 18 años, 4 meses
Puntos: 34
Respuesta: WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Hola!

Por ahi en el foro anda rodando una pregunta similar o igual, mi recomendacion y es en base a experiencia, maneja cadenas, los objetos complejos en xml pero dentro de una cadena e interpreta las etiquetas en cada aplicacion, no digo que el problema que mencionas no tenga solucion pero sinceramente la interoperabilidad de los ws entre lenguajes y plataformas es una porqueria, en muchas ocasiones simplemente no funciona el cliente, datos nulos, etc.

Saludos.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #3 (permalink)  
Antiguo 08/02/2012, 18:44
 
Fecha de Ingreso: enero-2011
Ubicación: lima-peru
Mensajes: 80
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Hola yo tuve mismo problema y no lo resolvi :D
sino que halle un forma mas eficiente de pasar datos a un ws , lo propuse y me dieron opcion a cambiarlo , use json para el envio , y el servicio lo volvi rest(wcf rest) .

con json , tu objeto seria solo esto

{"BoolValue":"true";"StringValue":"algo"}

..comparando menos data no?

no se pone demas indicadores porque ambos cliente y servidor saben que enviar y que recibir , claro tienes que seguir los principios rest y demas detalles , si te animas te dejo este link con el cual pude comsumir los servicios

http://www.java2s.com/Code/Android/Network/RestfulClient.htm

lo demas es parseo ( gson ).

suerte.
  #4 (permalink)  
Antiguo 09/02/2012, 02:17
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
Respuesta: WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Mmmm, si es la otra opción que había planteado, y tengo un ejemplo que hice con REST.

La verdad que me gustaría más hacerlo con Ksoap2 por el motivo de así tener mis clases bien definidas y así tener algo mejor organizado Arquitectónicamente el proyecto. Pero viendo los problemas que me está dando la puta interoperabilidad de los cojones, seguramente me plantee lo que me has comentado.

Quería hacerte una cuestión más. ¿El tema de la autentificación como la realizas?, Imagino que lo hareis usando https para encriptación de la información, pero... el tema de user y pass, ¿Como lo tienes implementado?, ¿Mandas user y pass en cada método?, ¿Haces un login, y mandas un token?...

En fin, espero puedas orientarme un poco en ese temilla.

Gracias y un saludo.
__________________
Charlie.
  #5 (permalink)  
Antiguo 05/01/2013, 16:02
 
Fecha de Ingreso: diciembre-2012
Ubicación: Costa Rica
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 6
Respuesta: WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Tengo el mismo problema, y simplemente no le veo una salida factible, mandar parametros primitivos como strings, int etc funciona perfactamente, pero al intentar enviar un objecto Ksoap serializa bien pero al servidor siempre llega ese objeto con valor null, y llevo días buscando una solución y nada, de hecho todos los ejemplos que me he encontrado son con WS .asmx que son los viejos pero con WCF no se ve mucho.
  #6 (permalink)  
Antiguo 07/01/2013, 11:10
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
Respuesta: WCF .NET y KSOAP2 Recibo datos complejos, pero no se envian bien...

Bueno, dos cosas ya que he adquirido algo de experiencia sobre este tema. :)

La primera es que no es nada recomendable usar KSOAP2 por que se sobre carga mucho el dispositivo movil. Mejor es usar REST.

Yo hice mi Web Service usando los dos métodos, para aprender y esas cosas. Sin embargo, con Ksoap2 al final opté por usar parámetros simples, ya que rediseñando mi aplicación, no veía la necesidad de mandar objetos.

De todas formas, por lo que he visto (Aun que insisto, no lo he probado), el problema está en que Ksoap2 solo está diseñado para serializar los tipos string y boolean, pero no los demás tipos de datos, por eso siempre llegan a null, por que no es capaz de saber como serializarlos.

Aun que repito, no lo he probado, creo que investigando con este enlace, debería ser suficiente para poder serializar datos de tipo double, datetime, etc... Espero os sirva, y si alguien lo prueba, que comente su resultado. xD

Un saludo.

EL LINK:

http://seesharpgears.blogspot.com.es...interface.html
__________________
Charlie.

Etiquetas: net, todo, wcf, apps
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.