Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

0

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

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda