[kotlin] 코틀린에서의 조건문과 반복문을 이용한 네트워크 통신

코틀린은 안드로이드 앱 및 서버 애플리케이션을 개발하기 위한 인기 있는 프로그래밍 언어입니다. 네트워크 통신은 많은 애플리케이션에서 중요한 요소 중 하나이며, 코틀린을 활용하여 이를 수행하는 방법을 알아보겠습니다.

조건문을 이용한 네트워크 통신

URLConnection을 사용하여 GET 요청 보내기

import java.net.URL
import java.io.BufferedReader
import java.io.InputStreamReader

fun main() {
    val url = URL("https://api.example.com/data")
    val conn = url.openConnection()
    conn.connect()
    val bufferedReader = BufferedReader(InputStreamReader(conn.getInputStream()))
    var inputLine: String?
    val response = StringBuffer()

    while (bufferedReader.readLine().also { inputLine = it } != null) {
        response.append(inputLine)
    }
    bufferedReader.close()
    println(response.toString())
}

위의 예제에서는 java.net.URLjava.net.URLConnection을 이용하여 GET 요청을 보내고, 응답을 받아 출력하는 방법을 보여줍니다.

반복문을 이용한 네트워크 통신

HTTPURLConnection을 사용하여 POST 요청 보내기

import java.net.HttpURLConnection
import java.net.URL
import java.io.DataOutputStream

fun main() {
    val url = URL("https://api.example.com/create")
    val conn = url.openConnection() as HttpURLConnection
    conn.requestMethod = "POST"
    conn.setRequestProperty("Content-Type", "application/json")
    conn.doOutput = true

    val data = "{\"name\":\"John\"}"
    val wr = DataOutputStream(conn.outputStream)
    wr.writeBytes(data)
    wr.flush()
    wr.close()

    val responseCode = conn.responseCode
    println("Response Code : $responseCode")

    val bufferedReader = BufferedReader(InputStreamReader(conn.inputStream))
    var inputLine: String?
    val response = StringBuffer()

    while (bufferedReader.readLine().also { inputLine = it } != null) {
        response.append(inputLine)
    }
    bufferedReader.close()
    println(response.toString())
    conn.disconnect()
}

위의 예제에서는 java.net.HttpURLConnection을 사용하여 POST 요청을 보내고, 서버로부터 받은 응답을 출력하는 방법을 보여줍니다.

위의 예제들은 기본적인 예제일 뿐이며, 실제 애플리케이션에서는 에러 처리, 쓰레드 작업, 보안 등을 고려해야 합니다. 네트워크 통신은 항상 예상치 못한 문제가 발생할 수 있으므로 이를 고려하여 안정적인 코드를 작성해야 합니다.

위의 예제에서는 코틀린에서의 조건문과 반복문을 이용한 네트워크 통신에 대해 알아보았습니다. 관련하여 궁금한 점이 있으시면 아래의 참고 자료를 참조해 주세요.

참고 자료