2016-09-29 55 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

它应该工作,你试过了吗?路径(“查询”)参数('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

为此,输入akka.http.scaladsl.server.Directives。 _'需要在那里。 – akauppi