Buenas noches desde España Foreros.
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:
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite == null)
{
throw new ArgumentNullException("composite");
}
composite.SringValue="miValor";
if (composite.BoolValue)
{
composite.StringValue += "Suffix";
}
return composite;
}
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.
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:
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();
En fin, espero que alguien que esté familiarizado con esto, pueda hecharme un cable. Desde ya, muchas gracias.