Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

217
Vistas
¿Cómo llamar asincrónicamente a la API de publicación HTTP?

Tengo un problema con mi aplicación de Android. Soy bastante nuevo con esto y tengo algunos problemas para encontrar la documentación correcta para un asíncrono. Estoy usando la biblioteca kohttp para ayudarme un poco.

La cuestión es que no puede ejecutar esto en el subproceso principal de la interfaz de usuario, por lo que quiero que esta solicitud sea asíncrona. No puedo encontrar una referencia clara en la documentación y realmente no sé cómo hacer esto en Kotlin simple.

Esto es lo que se me ocurre; en una clase separada llamada LoginCall . Intenté otras respuestas, sin embargo, esto no tuvo éxito. ¿Cómo puedo ejecutar esto en un nuevo hilo y seguir usando la respuesta?

 class LoginCall { fun callLoginRequest(a:String, b:String): Any { val response: Response = httpPost { host = "XXX" path = "XXX" param { } header { } body { form { "email" to a "password" to b } } } return response } }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Hay muchas maneras de lograr esto, si está usando Android como plataforma subyacente, puede usar el componente nativo llamado AsyncTask una buena publicación SO sobre cómo usarlo.

Si desea aprovechar kotlin como lenguaje y las funciones que proporciona, puede intentar usar coroutines ref .

Personalmente, recomendaría coroutines , simplifica el manejo de excepciones y errores, también evita el infierno de devolución de llamada.

aquí hay una muestra del mismo código en una rutina,

 // global private val mainScope = CoroutineScope(Dispatchers.MAIN + SupervisorJob()) // inside a method mainScope.launch{ withContext(Dispatchers.IO){ // do your async task here, as you can see, you're doing this in an IO thread scope. } }
over 4 years ago · Santiago Trujillo Denunciar

0

Desde kohttp 0.10.0, puede usar métodos asíncronos para tales casos. Puedes probarlos.

Ejemplo de código:

 suspend fun callLoginRequest(a:String, b:String): Any { val response: Differed<Response> = httpPostAsync { host = "XXX" path = "XXX" param { } header { } body { form { "email" to a "password" to b } } } // for further usage in coroutines return response.await() }

Y llama a esta función desde coroutine

over 4 years ago · Santiago Trujillo Denunciar

0

Además, puede crear un problema para implementar asyncHttpPost .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda