Tengo un WCF Service que tiene un método, que recibe como parametro un objeto, el cual luego devuelve otra vez.
La llamada desde mi Android es satisfactoria, recibo el objeto correctamente en mi cliente Android.
Sin embargo, a la hora de hacer la llamada al metodo, yo mando este mismo objeto a mi metodo en el WCF, cuyo cuerpo es el siguiente:
Código:
Ok, desde mi cliente Android, recibo el objeto correctamente. Pero, yo estoy mandando desde Android el parametro, con la propiedad BoolValue a true, para recibir en la propiedad StringValue el valor Suffix agregado.public CompositeType GetDataUsingDataContract(CompositeType composite) { if (composite == null) { throw new ArgumentNullException("composite"); } composite.SringValue="miValor"; if (composite.BoolValue) { composite.StringValue += "Suffix"; } return composite; }
Pero no, parece ser que los valores que establezco en mi Android no son recibidos en mi servicio, aun que si que es capaz de Deserializar el objeto, ya que sino, no me llegaría a cliente otra vez el objeto.
¿Saben que puede ser lo que esté haciendo mal?
Desde Android hago esto:
Código:
En fin, espero que alguien que esté familiarizado con esto, pueda hecharme un cable. Desde ya, muchas gracias. SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); //*** PROPIEDAD *** DEBERIA COGER EL TRUE EN EL WCF... CompositeType objComposite = new CompositeType(); objComposite.setProperty(0, true); objComposite.setProperty(1, "Probando"); //*** la agrego a la peticion *** PropertyInfo objParameter = new PropertyInfo(); objParameter.setName("composite"); objParameter.setValue(objComposite); objParameter.setType(CompositeType.class); request.addProperty(objParameter); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request); envelope.addMapping(NAMESPACE_CONTRACT, "CompositeType", CompositeType.class); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); androidHttpTransport.call(SOAP_ACTION, envelope); //Recibo el objeto de WCF correctamente SoapObject response = (SoapObject)envelope.getResponse();