Kotlin/포스팅

코틀린 URL 유틸리티

짜집퍼박사(짜박) 2024. 1. 1. 23:34

코틀린에서 URL을 다루기 위한 유틸리티는 주로 java.net.URL 클래스와 Kotlin 표준 라이브러리의 일부 확장 함수를 활용합니다. 아래에서는 주요한 URL 관련 유틸리티와 예제를 소개하겠습니다.

 

1. URL 생성 및 파싱

java.net.URL 클래스는 URL을 파싱하고 생성하는 기능을 제공합니다.

import java.net.URL

fun main() {
    // URL 생성
    val url = URL("https://www.example.com/path?param=value")

    // URL 파싱
    println("Protocol: ${url.protocol}")
    println("Host: ${url.host}")
    println("Path: ${url.path}")
    println("Query: ${url.query}")
}

 

2. URL 인코딩 및 디코딩

Kotlin 표준 라이브러리는 URL 인코딩 및 디코딩을 위한 URLEncoder 및 URLDecoder를 제공합니다.

import java.net.URLEncoder
import java.net.URLDecoder

fun main() {
    // URL 인코딩
    val encodedValue = URLEncoder.encode("value with spaces", "UTF-8")
    println("Encoded Value: $encodedValue")

    // URL 디코딩
    val decodedValue = URLDecoder.decode("value%20with%20spaces", "UTF-8")
    println("Decoded Value: $decodedValue")
}

 

3. 상대 경로 결합

java.net.URL 클래스를 사용하여 상대 경로를 기준 URL에 결합할 수 있습니다.

import java.net.URL

fun main() {
    val baseUrl = URL("https://www.example.com/base")
    val relativePath = "path/to/resource"

    // 상대 경로 결합
    val combinedUrl = URL(baseUrl, relativePath)
    println("Combined URL: $combinedUrl")
}

 

4. 쿼리 매개변수 다루기

쿼리 매개변수를 다루기 위해 java.net.URL 클래스와 Kotlin의 문자열 및 컬렉션 확장 함수를 활용할 수 있습니다.

import java.net.URL

fun main() {
    val urlString = "https://www.example.com/path?param1=value1&param2=value2"

    // URL 파싱
    val url = URL(urlString)

    // 쿼리 매개변수 읽기
    val queryParams = url.query?.split('&')?.associate {
        val (key, value) = it.split('=')
        key to value
    } ?: emptyMap()

    println("Query Parameters: $queryParams")
}

 

5. Ktor의 URLBuilder 사용

Kotlin 기반의 웹 프레임워크인 Ktor는 io.ktor.http.URLBuilder 클래스를 사용하여 URL을 빌드하는 데 유용한 기능을 제공합니다.

import io.ktor.http.URLBuilder

fun main() {
    val builtUrl = URLBuilder(
        protocol = URLBuilder.Protocol.HTTPS,
        host = "www.example.com",
        encodedPath = "/path",
        parameters = listOf("param1" to "value1", "param2" to "value2")
    ).buildString()

    println("Built URL: $builtUrl")
}

위의 코드는 Ktor의 URLBuilder를 사용하여 URL을 빌드하는 간단한 예제입니다. Ktor는 HTTP 클라이언트 및 서버 개발을 위한 강력한 라이브러리이며, URL 관리에 있어서 편리한 도구를 제공합니다.

위의 예제 코드들은 주로 기본적인 URL 다루기에 대한 내용이며, 실제 프로젝트에서는 라이브러리나 프레임워크에 따라 다양한 도구 및 유틸리티를 활용할 수 있습니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코틀린 파일 시스템 유틸리티  (0) 2024.01.02
코틀린 파일 콘텐츠 접근  (0) 2024.01.01
코틀린 스트림 생성  (0) 2024.01.01
코틀린 스트림 유틸리티  (0) 2024.01.01
코틀린 파일과 I/O 스트림  (0) 2024.01.01