2016-09-29 2 views
5

Я знаю, что akka-http библиотеки маршала и немаршали к типу класса во время обработки запроса. Но теперь мне нужно прочитать параметры запроса GET. Я попробовал метод parameter() и он возвращает ParamDefAux, но мне нужны эти значения как строки типовКак читать параметры запроса в akka-http?

Я проверяю ответ на вопросы ниже.

  1. How can I parse out get request parameters in spray-routing?

  2. Query parameters for GET requests using Akka HTTP (formally known as Spray)

, но не может делать то, что мне нужно.

Пожалуйста, расскажите, как я могу извлечь параметры запроса из запроса. ИЛИ Как я могу извлечь нужное значение из ParamDefAux

Запрос URL

http://host:port/path?key=authType&value=Basic345 

определение Get метод

val propName = parameter("key") 
val propValue = parameter("value") 
complete(persistanceMgr.deleteSetting(propName,propValue)) 

Мой метод деклараций

def deleteSetting(name:String,value:String): Future[String] = Future{ 
code... 
} 
+0

Должно работать, вы пробовали? path ("query") { параметров ('name.as [String]) {name => complete (name) } } ~ –

ответ

10

Для запроса как http://host:port/path?key=authType&value=Basic345 попробовать

path("path") { 
    get { 
    parameters('key.as[String], 'value.as[String]) { (key, value) => 
     complete { 
     someFunction(key,value) 
     } 
    } 
    } 
} 
+3

Для этого необходимо выполнить операцию 'import akka.http.scaladsl.server.Directives. _' должен быть там. – akauppi

Смежные вопросы