Акка http здание Ури

Я пытаюсь создать Uri, но метод Query дает мне несоответствие типа, ожидаемую строку, фактический Uri.Query

def buildUri(url: String, query: Option[Map[String, String]] = None): Uri = {

    val fullUrl = endpoint + (if (endpoint.endsWith("/")) url else "/" + url)

    val uri: Uri = query match {
      case Some(map) if map.nonEmpty =>
        Uri(fullUrl.toString).copy(query = Query(map))
      case _ =>
        Uri(fullUrl.toString)
    }

    uri

  }

person ifog    schedule 25.09.2018    source источник
comment
Как я вижу, класс case Uri не имеет параметра с именем query. Uri (схема: строка, полномочия: полномочия, путь: путь, rawQueryString: Option[String], фрагмент: Option[String])   -  person Raman Mishra    schedule 25.09.2018
comment
Внутри есть объект Queri   -  person ifog    schedule 25.09.2018
comment
Запрос не запрос, и вы присваиваете значение запросу, у него нет параметра с именем запрос, и да, у него есть запрос. что именно вы хотите сделать?   -  person Raman Mishra    schedule 25.09.2018


Ответы (1)


Я думаю, это то, что вы хотите сделать:

def buildUri(url: String, query: Option[Map[String, String]] = None): Uri = {

    val fullUrl = endpoint + (if (endpoint.endsWith("/")) url else "/" + url)

    val uri: Uri = query match {
      case Some(map) if map.nonEmpty =>
        Uri(fullUrl.toString).withQuery(query = Query(map))
      case _ =>
        Uri(fullUrl.toString)
    }

    uri
  }
person Raman Mishra    schedule 25.09.2018