laurokarlos
Member
Hola de nuevo, no se porque el anterior post no aparece. Tengo este codigo en B4A que debería devolverme una respuesta desde una API pero los _ResponseSuccess y _ResponseError no se disparan. Que está sucediendo??? vi en otro post que el Httpjob no estaba trabajando con normalidad...
@Erel, @asales saben que estaría sucediendo?
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			@Erel, @asales saben que estaría sucediendo?
			
				Ejemplo:
			
		
		
		Sub Button1_Click
    GetLiveMatches
End Sub
Sub GetLiveMatches
    Dim job As HttpJob
    job.Initialize("LiveMatchesJob", Me)
    job.Download("https://v3.football.api-sports.io/fixtures?live=all")
    job.GetRequest.SetHeader("x-rapidapi-host", "v3.football.api-sports.io")
    job.GetRequest.SetHeader("x-rapidapi-key", "672239e740516f0166befb45b11da634")
    Log("Petición de partidos iniciada...")
    ' Muestra un mensaje de "Cargando..." en la UI
    ' Por ejemplo:
    lblStatus.Text = "Cargando partidos..."
End Sub
' Este sub se ejecutará cuando la petición termine
Sub LiveMatchesJob_ResponseSuccess (job As HttpJob)
    Log("--> SUB LIVE_MATCHES_JOB_RESPONSESUCCESS FUE LLAMADA")
    ' Verifica si la petición fue exitosa
    If job.Success Then
        Log("Respuesta de la API recibida")
        
        Dim jsonResponse As String
        jsonResponse = job.GetString
        ' Ahora necesitas parsear este JSON
        ParseMatches(jsonResponse)
    Else
        ' Maneja el caso de error si la petición no fue exitosa
        Log("Error al obtener datos: " & job.ErrorMessage)
    End If
    ' Libera los recursos del objeto Job
    job.Release
End Sub
' Este sub se ejecutará si hay un error en la petición
'Sub LiveMatchesJob_ResponseError (joba As HttpJob, Reason As String, StatusCode As Int)
Sub LiveMatchesJob_ResponseError (job As HttpJob, Reason As String, StatusCode As Int)
    Log("Error en la petición: " & Reason)
    lblStatus.Text = "Error al cargar los datos: " & Reason
    job.Release
End Sub
Sub ParseMatches(jsonString As String)
    ' Limpia cualquier vista anterior en la interfaz de usuario
    PanelScrollView.Panel.RemoveAllViews
    
    Dim parser As JSONParser
    parser.Initialize(jsonString)
    
    Dim jsonRoot As Map
    jsonRoot = parser.NextValue
    If jsonRoot.ContainsKey("response") Then
        Dim responseList As List
        responseList = jsonRoot.Get("response")
        
        If responseList.Size > 0 Then
            For Each matchMap As Map In responseList
                ' Extrae los datos de cada partido
                Dim fixtureMap As Map = matchMap.Get("fixture")
                Dim teamsMap As Map = matchMap.Get("teams")
                Dim goalsMap As Map = matchMap.Get("goals")
                Dim leagueMap As Map = matchMap.Get("league")
                
                Dim homeTeamMap As Map = teamsMap.Get("home")
                Dim awayTeamMap As Map = teamsMap.Get("away")
                
                Dim homeGoals As Int = goalsMap.Get("home")
                Dim awayGoals As Int = goalsMap.Get("away")
                Dim leagueName As String = leagueMap.Get("name")
                
                ' Aquí llamarías a un sub para crear las vistas
                CreateMatchView(homeTeamMap, awayTeamMap, homeGoals, awayGoals, leagueName)
            Next
        Else
            Log("No hay partidos, muestra un mensaje")
            lblStatus.Text = "No hay partidos en vivo en este momento."
        End If
    Else
        ' La clave "response" no existe en el JSON. La API no devolvió datos.
        Log("La respuesta de la API no contiene la clave 'response'.")
        lblStatus.Text = "No se pudieron obtener los datos de la API."
    End If
End Sub 
				 
 
		 
					
				 
 
		 
						
					 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		