Problema con el envío de datos a un servicio web, con KSOAP
-
12-12-2019 - |
Pregunta
buenas noches,
Necesito tu ayuda.
hasta ahora, usando mi servicio web para retirar los datos, no hubo ningún problema. Incluso para recibir los datos, tengo que enviar algunos. Ejemplo: Iniciar sesión.
Sin embargo, ahora quiero enviar datos al servicio web, y solo volverá "Verdadero o Falso".
Sé que tengo los datos necesarios, pero no hace lo que se supone que debe hacer. Es decir, el método que estoy invocando, debe recibir datos, y con estos datos hace la actualización en la base de datos. Sé que funciona manualmente, directamente en el servicio web.
¿Qué podría estar equivocado?
a continuación es el código:
Después de insertar los datos en la aplicación en Android, cuando haga clic en un botón, haga esto:
El mensaje en el final, es la forma en que sé que envío datos reales:
try
{
newpassword = newPass;
Abreviatura = (EditText)findViewById(R.id.txtAbreviatura);
newabreviatura = Abreviatura.getText().toString();
Nome = (EditText)findViewById(R.id.txtNome);
newnome = Nome.getText().toString();
User = (EditText)findViewById(R.id.txtUsername);
newusername = User.getText().toString();
rslt="START";
Caller c=new Caller(); c.newNome = newnome;
c.newUser = newusername; c.newPass = newpassword;
c.newAbrev = newabreviatura; c.oldusername = oldusername;
c.ad=ad;
c.join(); c.start();
while(rslt=="START") {
try {
Thread.sleep(10);
}catch(Exception ex) {
}
}
ad.setTitle("Alteração:");
ad.setMessage(BIQActivity.comando + ";" + newnome + ";" + newpassword + ";" + newabreviatura + ";" + newusername + ";" + oldusername);
ad.show();
}catch(Exception ex)
{
}
Esa función, utiliza esta paz de código, para enviar datos al siguiente código:
csup=new CallSoapUpdatePerfil();
String resp=csup.CallUpdatePerfil(newUser, newNome, newPass, newAbrev, ldusername);
Perfil.rslt = resp;
Finalmente, este es el código que envía los datos al servicio web:
public class CallSoapUpdatePerfil {
public final String SOAP_ACTION = "http://tempuri.org/UpdatePerfil";
public final String OPERATION_NAME = "UpdatePerfil";
public final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";
public final String SOAP_ADDRESS = "http://10.0.2.2:80/BIQAndroid/BIQAndroid.asmx";
public String CallUpdatePerfil(String User, String Pass, String Nome, String Abrev, String oldusername)
{
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);
PropertyInfo pi=new PropertyInfo();
pi.setName("User");
pi.setValue(User);
pi.setType(String.class);
request.addProperty(pi);
pi=new PropertyInfo();
pi.setName("Pass");
pi.setValue(Pass);
pi.setType(String.class);
request.addProperty(pi);
pi=new PropertyInfo();
pi.setName("Abrev");
pi.setValue(Abrev);
pi.setType(String.class);
request.addProperty(pi);
pi=new PropertyInfo();
pi.setName("Nome");
pi.setValue(Nome);
pi.setType(String.class);
request.addProperty(pi);
pi=new PropertyInfo();
pi.setName("oldusername");
pi.setValue(oldusername);
pi.setType(String.class);
request.addProperty(pi);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
Object response=null;
try
{
httpTransport.call(SOAP_ACTION, envelope);
response = envelope.getResponse();
}
catch (Exception exception)
{
response=exception.toString();
}
return response.toString();
}
}
Si alguien puede ayudar ... saludos.
Solución
Ya encuentro el error.El error es sobre el nombre del parámetro de WebService.: s
hecho.
gracias de todos modos.