Как сделать кодировку URL для параметров запроса в Kotlin - PullRequest
0 голосов
/ 08 июля 2019

Я новичок в Kotlin, и я пытаюсь URL кодировать мой URL, который имеет параметры запроса.

private const val HREF = "date?July 8, 2019"
private const val ENCODED_HREF = print(URLEncoder.encode(HREF, "utf-8"))
private const val URL = "www.example.com/"+"$ENCODED_HREF"

Ошибка: Const 'val' имеет тип 'Unit'. Разрешены только примитивы и строки для private const val ENCODED_HREF

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

const выражения в Kotlin должны быть известны во время компиляции. Кроме того, как указывает @Stanislav, print - это метод Unit (т.е. void в Java), поэтому печать чего-либо уничтожает его значение.

Поскольку ваши константы вычисляются, уместно использовать val (который является константой времени выполнения). Следующие компиляции.

private const val HREF = "date?July 8, 2019"
private val ENCODED_HREF = java.net.URLEncoder.encode(HREF, "utf-8")
private val URL = "www.example.com/"+"$ENCODED_HREF"
0 голосов
/ 09 июля 2019

Похоже, что возвращаемый тип метода print равен Единица , поэтому ENCODED_HREF имеет этот тип. Просто возьмите часть URLEncoder из метода, чтобы исправить это:

private const val ENCODED_HREF = URLEncoder.encode(HREF, "utf-8")
...