Spanish jOkHttpUtils2_NONUI, OkHttp No me funciona con ASMX

Omar Moreno

Member
Licensed User
Longtime User
Hola gracias por la respuesta que me puedan dar a esta pregunta.

Tengo un webservice de pruebas asp.net (asmx) y responde perfectamente en aplicaciones de formularios en los cuales uso la librería jOkHttpUtils2, OkHttp.

Al ejecutar el código en el IDE de B4J debe generar estos LOG:

Antes del Wait For
Despues del Wait For
RESPUESTA: Hola a todos

Pero cuando intento utilizarlo en una aplicación tipo Non-UI application (console / server application) la cual utiliza las librerías jOkHttpUtils2_NONUI, OkHttp el programa se queda esperando la respuesta del Wait For.

No pasa del LOG:

Antes del Wait For

Ya he probados con los protocolos SOAP 1.1 y SOAP 1.2

Podrían indicarme que configuración se requiere para que funciones en aplicaciones tipo Non-UI application (console / server application).

Gracias.

B4X:
'
Public Sub Saludar()
    '
    Dim PuertoServidor  As String = "8173"
    Dim WebSiteServidor As String = "WebX.asmx"
    Dim Servidor        As String = "Omar-PC"
    Dim IpServidor      As String = "localhost"
    '
    Dim DataXML As String
    '
    DataXML = $"<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <HelloWorld xmlns="http://$SERVIDOR$/" />
  </soap12:Body>
</soap12:Envelope>"$
    '
    DataXML = DataXML.Replace("$SERVIDOR$", Servidor)
    '
    Dim XJob As HttpJob
    XJob.Initialize("", Me)
    XJob.PostString("http://"& IpServidor & ":" & PuertoServidor & "/" & WebSiteServidor,  DataXML)
    '
    XJob.GetRequest.SetContentType("application/soap+xml; charset=utf-8")
    '
    Log("Antes del Wait For") '<--- No avanza de aquí si la aplicación es de consola
    '
    Wait For (XJob) jobdone(XJob As HttpJob)
    '
    Log("Despues del Wait For")
    '
    If XJob.success Then
        '
        Dim Datos() As String
        Datos = Regex.Split("HelloWorldResult>",XJob.GetString)
        '
        Log("RESPUESTA: " & Datos(1).SubString2(0,Datos(1).Length -2))
        '
    Else
        '
        Log(XJob.ErrorMessage)
        '
    End If
    XJob.Release
    '
End Sub
 

Omar Moreno

Member
Licensed User
Longtime User
He descargado el código de OkHttpUtils2 y verificando me di cuenta que no tenia el método StartMessageLoop.

B4X:
Sub AppStart (Args() As String)
[INDENT]Saludar
StartMessageLoop[/INDENT]
End Sub
 
Top