1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import java.io.* import java.net.HttpURLConnection import java.net.URL fun main() { val url = URL("https://ejemplo.com/api/endpoint") // URL de la API o endpoint val requestBody = "param1=valor1¶m2=valor2" // Datos a enviar en el cuerpo de la solicitud // Crear la conexión HTTP val connection = url.openConnection() as HttpURLConnection connection.requestMethod = "POST" // Establecer el método POST connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded") // Establecer el tipo de contenido // Habilitar el envío de datos en el cuerpo de la solicitud connection.doOutput = true val outputStream = connection.outputStream outputStream.write(requestBody.toByteArray()) outputStream.flush() outputStream.close() // Leer la respuesta de la solicitud val responseCode = connection.responseCode if (responseCode == HttpURLConnection.HTTP_OK) { val inputStream = connection.inputStream val reader = BufferedReader(InputStreamReader(inputStream)) val response = StringBuilder() var line: String? while (reader.readLine().also { line = it } != null) { response.append(line) } reader.close() println("Respuesta: ${response.toString()}") } else { println("Error en la solicitud. Código de respuesta: $responseCode") } // Cerrar la conexión connection.disconnect() } |
reader.readLine()
: Lee una línea de texto de la respuesta HTTP..also { line = it }
: Almacena la línea leída en la variableline
.!= null
: Comprueba si la línea leída no es nula, es decir, si todavía hay líneas de texto por leer en la respuesta.