[kotlin] 코틀린 스크립트에서의 네트워크 통신 기능 사용법

코틀린은 다양한 네트워크 통신 기능을 제공하여 웹 또는 서버와의 통신을 쉽게 처리할 수 있습니다. 이번 포스트에서는 코틀린 스크립트에서 네트워크 통신을 하는 방법에 대해 알아보겠습니다.

1. URL 연결하기

코틀린에서 네트워크 통신을 하기 위해서는 java.net 패키지의 URL 클래스를 사용합니다. 다음은 URL을 통해 서버와 연결하는 예제입니다.

import java.net.URL

fun main() {
    val url = URL("https://www.example.com")
    val connection = url.openConnection()
    val response = connection.getInputStream().bufferedReader().use { it.readText() }
    println(response)
}

위의 예제에서는 URL("https://www.example.com")을 통해 원하는 URL에 연결하고, openConnection()을 통해 연결 객체를 가져옵니다. getInputStream()을 호출하여 서버로부터 데이터를 읽어올 수 있습니다. 위 예제에서는 읽어온 데이터를 라인별로 읽어와 readText()를 호출하여 전체 텍스트를 가져옵니다.

2. HTTP 요청 보내기

HTTP 요청을 보내기 위해서는 HttpURLConnection 클래스를 사용합니다. 다음은 GET 요청을 보내는 예제입니다.

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

fun main() {
    val url = URL("https://api.example.com/data")
    val connection = url.openConnection() as HttpURLConnection
    connection.requestMethod = "GET"
    
    val responseCode = connection.responseCode
    if (responseCode == HttpURLConnection.HTTP_OK) {
        val bufferedReader = BufferedReader(InputStreamReader(connection.inputStream))
        val response = StringBuilder()
        var line: String?
        while (bufferedReader.readLine().also { line = it } != null) {
            response.append(line)
        }
        bufferedReader.close()

        println(response.toString())
    } else {
        println("HTTP request failed with response code $responseCode")
    }
}

위 예제에서는 URL("https://api.example.com/data")을 통해 요청할 URL을 설정하고, openConnection()을 호출하여 HttpURLConnection 객체를 가져옵니다. requestMethod"GET"으로 설정하여 GET 요청을 보냅니다. 그리고 responseCode를 통해 서버 응답의 상태 코드를 확인할 수 있습니다. HTTP_OK (200) 상태 코드를 받으면, 서버로부터 전달받은 데이터를 읽어오고 출력합니다.

3. HTTPS 요청 보내기

HTTPS 요청을 보내기 위해서는 HttpsURLConnection 클래스를 사용하면 됩니다. HttpURLConnection과 사용법은 동일합니다. 다음은 HTTPS 요청을 보내는 예제입니다.

import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.URL
import javax.net.ssl.HttpsURLConnection

fun main() {
    val url = URL("https://api.example.com/data")
    val connection = url.openConnection() as HttpsURLConnection
    connection.requestMethod = "GET"
    
    // HTTPS 요청을 위한 추가 설정
    connection.sslSocketFactory = SSLContext.getDefault().socketFactory

    val responseCode = connection.responseCode
    if (responseCode == HttpsURLConnection.HTTP_OK) {
        ...
    } else {
        ...
    }
}

위 예제에서는 URL("https://api.example.com/data")을 통해 요청할 HTTPS URL을 설정하고, openConnection()을 호출하여 HttpsURLConnection 객체를 가져옵니다. sslSocketFactory를 설정하여 SSL 연결을 수행합니다. 나머지 코드는 HTTP 요청과 동일합니다.

결론

이번 포스트에서는 코틀린 스크립트에서의 네트워크 통신 기능 사용법에 대해 알아보았습니다. 코틀린의 다양한 네트워크 통신 클래스들을 적절하게 사용하면 원하는 웹 또는 서버와의 통신을 쉽게 처리할 수 있습니다. 자세한 내용은 Kotlin 사용자 설명서를 참조하시기 바랍니다.