Spanish Llamar a un Web Api de punto net desde b4a.

samperizal

Active Member
Licensed User
Longtime User
Saludos.

Tengo un Web Api realizado en .net y quiero poder ejecutarlo desde b4a.

Alguien me puede ayudar para pasar esa llamada a b4a.

He intentado con este
Codigo:
    Dim Token As String
    Token = "*************"
    Dim img As String = "1.jpg"
    Dim URL As String = "https://api.prueba.com:8443/processing/process"
    
    Dim m As Map = CreateMap("ReturnThumbnail": "True","OptionalParameters": "")
'   
'   
    Dim job As HttpJob
    job.Initialize("", Me)
    job.GetRequest.SetHeader("Token", Token)
    job.GetRequest.SetContentType("application/json")
    Dim mp As MultipartFileData
    mp.Initialize
    'mp.Dir = File.DirRootExternal & "/Image/"
    mp.Dir = "/storage/emulated/0/Android/data/ID.PLacas/files"
    mp.FileName = img
    mp.KeyName = "file"
    mp.ContentType = "image/jpg"
    job.PostMultipart(URL, m, Array(mp))
    Wait For (job) JobDone(j As HttpJob)
    If j.Success Then
        Log(j.GetString)
    Else
        Log (LastException)
    End If
    job.Release

En esta línea :

job.GetRequest.SetHeader("Token", Token)

Ocurre el siguiente error:

"java.lang.NullPointerException: Attempt to invoke virtual method 'okhttp3.Request$Builder okhttp3.Request$Builder.addHeader(java.lang.String, java.lang.String)' on a null object reference"
 

drgottjr

Expert
Licensed User
Longtime User
las "cabeceras" vienen despues de la solicitud...
B4X:
    job.PostMultipart(URL, m, Array(mp))
    job.GetRequest.SetHeader("Token", Token)
    job.GetRequest.SetContentType("application/json")

pruebalo. (por si quieres saber: la solicitud todavia no esta inicializada. estas intentando anadir cabeceras a un objeto nulo. haz la solicitud (si inicializa en este momento) y anades las cabeceras. ya se que no tiene sentido, pero funciona asi y alabado sea dios)
 
Last edited:

samperizal

Active Member
Licensed User
Longtime User
Saludos. Gracias por la respuesta.
Con el código se soluciono el error y ahora la aplicación se queda colgada y no pasa de
Wait For (job) JobDone(j As HttpJob) y al rato dice que la aplicación no responde. Como lo puedo solucionar?
 

drgottjr

Expert
Licensed User
Longtime User
hombre, fijate: no conozco la url, no se como funciona,
no se si todos los parametros e identificadores usados son correctos, no se si tienes
derecho de acceder al directorio mentado (ademas, no se recomienda referirse
a el de la manera que has usado). etc, etc. todo esto aparte, en principio la solicitud
deberia funcionar (miles de miembros del foro utilizamos okhttputils2 a diario para
cargar y descargar recursos).
el mensaje "no responde" podria indicar otro tipo de error. no se sabe exactamente donde
se cuadra la solicitud al servidor dentro de tu aplicacion.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…