EnjoyLife

퍼센트인코딩 적용 본문

안드로이드 개발/개발팁

퍼센트인코딩 적용

Aiden96 2024. 6. 21. 09:20

 

서버에서 데이터 수신시 특수기호(+ , *,공백)에 대한 처리가 필요할 경우 아래 함수를 적용한다. 

     fun encodeUrlPart(originalUrl: String): String {
        val url = URL(originalUrl)
        val path = url.path.split("/").joinToString("/") {
            URLEncoder.encode(it, StandardCharsets.UTF_8.toString())
                .replace("%2F", "/")
                .replace("+", "%20")
                .replace(" ", "%2B")
        }
        val query = url.query?.split("&")?.joinToString("&") {
            it.split("=").joinToString("=") {
                URLEncoder.encode(it, StandardCharsets.UTF_8.toString())
                    .replace("%2F", "/")
                    .replace("+", "%20")
                    .replace(" ", "%2B")
            }
        }
        return url.protocol + "://" + url.host + path + (if (query != null) "?$query" else "")
    }