Spanish Consumir APIs (WebServics) desde B4A

Saludos tengo unas series de API (desarrolladas en PHP) que implementan los métodos GET, POST, PUT y DELETE de forma excelente y ya funciona muy bien desde javascript en una app web usando AJAX + JQUERY

Lo que deseo es poder usar esa API desde B4A, entendiendo que según el método a usar, se envían ciertos parámetros o valores (string y/o números) en el "head" de la solicitud y los resultados obtenidos son siempre en formato JSON

Podrían darme la url de algunos ejemplos funcionales que me permita entender como desde B4A consumir esa API

Muchas Gracias
 

TILogistic

Expert
Licensed User
Longtime User
Debes indicar si las Url Tiene parametros y como llamas a esos parametros.

Si son pretty URLs o no

ejemplo simple tipo GET:

Wait For (GetURL(Link)) Complete (DataResult As String)
Log(DataResult)

LIbreria OkHttpUtils2
B4X:
Private Sub GetURL(Link As String) As ResumableSub
    Dim Result As String
    Dim j As HttpJob
    Try
        j.Initialize("", Me)
        j.Download(Link)
        j.GetRequest.SetHeader("Content-Type","application/json")
        j.GetRequest.Timeout = 60000
        Wait For (j) JobDone(j As HttpJob)
        If j.Success Then
            Result = j.GetString
        End If
    Catch
        Log(LastException)
    End Try
    j.Release
    Return Result
End Sub
 
Saludos, gracias voy a revizar, para el caso de get puedo enviar los parámetros por la url, pero en los casos de POST, PUT y DELETE los parámetros algunos van en el Head de la solicitud y otros en el Body de la solicitud y alli si no he conseguido ejemplo que funcione bien.

Si tienen algo adicional, se los agradezco
 

TILogistic

Expert
Licensed User
Longtime User
get puedo enviar los parámetros por la url
si
B4X:
ublic Sub TESTGetURLWithParmeters
    Dim Link As String = "My URL....."
    Dim Parameters() As String = Array As String ("Key1","Value1","Key2","Value2")
    Wait For (GetURLWithParmeters(Link, Parameters)) Complete (DataResult As String)
    Log(DataResult)
End Sub
Public Sub GetURLWithParmeters(Link As String, Parameters() As String) As ResumableSub
    Dim Result As String
    Dim j As HttpJob
    Try
        j.Initialize("", Me)
        j.Download2(Link, Parameters)
        j.GetRequest.SetHeader("Content-Type","application/json")
        j.GetRequest.Timeout = 60000
        Wait For (j) JobDone(j As HttpJob)
        If j.Success Then
            Result = j.GetString
        End If
    Catch
        Log(LastException)
    End Try
    j.Release
    Return Result
End Sub

parámetros algunos van en el Head
SI
j.GetRequest.SetHeader
 

TILogistic

Expert
Licensed User
Longtime User
Debe publicar ejemplo de como llamas a los métodos para poder ayudarlo.

Una buena herramienta de ayuda y puede publicar como hace las llamadas de cada método para convertir a B4X
https://www.postman.com/

Note:
Veo que no esta licenciado, puede donar para ayudar el desarrollo de B4X.

Saludos.
 
si
B4X:
ublic Sub TESTGetURLWithParmeters
    Dim Link As String = "My URL....."
    Dim Parameters() As String = Array As String ("Key1","Value1","Key2","Value2")
    Wait For (GetURLWithParmeters(Link, Parameters)) Complete (DataResult As String)
    Log(DataResult)
End Sub
Public Sub GetURLWithParmeters(Link As String, Parameters() As String) As ResumableSub
    Dim Result As String
    Dim j As HttpJob
    Try
        j.Initialize("", Me)
        j.Download2(Link, Parameters)
        j.GetRequest.SetHeader("Content-Type","application/json")
        j.GetRequest.Timeout = 60000
        Wait For (j) JobDone(j As HttpJob)
        If j.Success Then
            Result = j.GetString
        End If
    Catch
        Log(LastException)
    End Try
    j.Release
    Return Result
End Sub


SI
j.GetRequest.SetHeader
Amigo, saludos, buen modelo, voy a probarlo y te confirmo como me fue...

Muchas gracias por al orientación.

Sólo algo más: Donde puedo conseguir documentación clara y oficial del objeto: HttpJob..? Busqué en el foro pero no son claras las explicaciones que conseguí.
 
Top