Spanish WEB Services [SOLUCIONADO]

directorfw

Member
Licensed User
Longtime User
Buenos dias a todos.

Vengo aqui igual que la ultima vez para solicitar un poco de ayuda con respecto a un problema que tengo.

Sucede que cuando hago una peticion a web services necesito agregar un tiempo de espera hasta obtener la respuesta, lo que pasa es que al enviar esa solicitud, obtengo una respuesta, y dependiendo de esa respuesta se realiza el debido procedimiento, el problema esta en que cuando hago esa peticion, salta automaticamente esa parte.

me explico mejor, al momento de enviar la informacion ya sea porque no pudo enviar los datos, o porque los datos que envie eran erroneos devuelve un mensaje de error, en caso contrario que si se haya enviado, regresa un mensaje de confirmado, el detalle esta que cuando envia la informacion, pasan unos cuantos segundos, hasta recibir la respuesta, pero el metodo hace todo de inmediato por lo cual siempre regresa un mensaje de error, tengo que el jobdone muestre un mensaje con el resultado, y me devuelve el confirmado, pero despues de un tiempo, mi duda es como hago para esperar hasta la respuesta, use el timer para hacer esto pero realmente no me funciono, nose si me puedan ayudar.

de antemano gracias.

B4X:
Sub lbIniciar_Click
    confirma=""
    Dim mts As Metodos
    If edUser.Text.EqualsIgnoreCase("") Or edPass.Text.EqualsIgnoreCase("") Then
        lbFalla.Text="Campos vacios"
        Else
            confirma=mts.GetAcceso(edUser.Text,edPass.Text)
            If confirma.EqualsIgnoreCase("Error") Then
                lbFalla.Text="Error en el inicio de sesion"
            Else If confirma.EqualsIgnoreCase("confirmado") Then
                Activity.RemoveAllViews
                Activity.LoadLayout("Recarga")
                VistaRecarga               
            End If
        End If
End Sub
 

JordiCP

Expert
Licensed User
Longtime User
No sé si he entendido bien el problema

En vez de poner un timer para hacer lo que tengas que hacer con la respuesta, pon todo (lo que se deba hacer con dicha respuesta) en un Sub, y llama a este Sub cuando recibas el evento JobDone.

Mejor hazlo con CallSubDelayed(..) ya que el JobDone es un evento asíncrono
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Al igual que JordiCP tampoco entendi bien el problema, pero puedes hacerlo con ese timer, crea una variable global que te de el resultado en el JobDone, antes de hacer la llamada pon la variable a -1 (por ejemplo) y en el JobDone dale el valor que creas que es correcto para luego tratar la información (1 = falló el envio, 2 = envio correcto) Luego en el timer consulta la variable global y actua dependiendo de ella

Saludos
 

directorfw

Member
Licensed User
Longtime User
gracias por las respuestas, lo hice como jordiCP lo comento, y me funciono tal cual lo necesitaba, si se podria hacer con php el problema es que donde trabajo se rehusan a utilizarlo, de ser lo contrario todo seria mas sencillo, de igual manera muchas gracias
 
Top