AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>
Gradle (Module:app)

//Retrofit
implementation ("com.squareup.retrofit2:retrofit:2.9.0")
implementation ("com.squareup.retrofit2:converter-gson:2.9.0")

Crear un data class

UsuariosResponse.kt

package com.javi.u10a

data class Usuario(
    val id: String,
    val nombre: String,
    val apellido1: String,
    val apellido2: String,
    val URL:String
)

Crear una clase interface

ApiService.kt

package com.javi.u10a

import retrofit2.http.GET
import retrofit2.http.Query

interface ApiService {
    @GET("findByID.php")
    suspend fun findByID(@Query("id") id: Int): List<Usuario>
}

En el MainActivity.kt

package com.javi.u10a

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory


class MainActivity : AppCompatActivity() {

    private val apiService: ApiService by lazy {
        val retrofit = Retrofit.Builder()
            .baseUrl("https://javigomez.org/ESIC/PMDM/")
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(CoroutineCallAdapterFactory())
            .build()

        retrofit.create(ApiService::class.java)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        CoroutineScope(Dispatchers.IO).launch {
            try {
                val usuarios = apiService.findByID(1)
                 if (usuarios.isNotEmpty()) {
                    val usuario = usuarios[0]
                    Log.d("JAI", "Usuario: ${usuario.id}, ${usuario.nombre}, ${usuario.apellido1}, ${usuario.apellido2}")
                }
            } catch (e: Exception) {
                Log.e("JAI", "Error al obtener usuarios", e)
            }
        }
    }
}

Related Posts