我知道akka-http库在处理请求时编组和解组类类型。但是现在,我需要读取GET
请求的请求参数。我尝试了parameter()
方法并返回ParamDefAux
类型,但我需要将这些值作为字符串类型
我在下面的问题中检查答案。
How can I parse out get request parameters in spray-routing?
Query parameters for GET requests using Akka HTTP (formally known as Spray)
但不能做我需要的。
请告诉我如何从请求中提取查询参数。或者我如何从ParamDefAux
请求网址
http://host:port/path?key=authType&value=Basic345
获取方法定义
val propName = parameter("key")
val propValue = parameter("value")
complete(persistanceMgr.deleteSetting(propName,propValue))
我的方法声明
def deleteSetting(name:String,value:String): Future[String] = Future{
code...
}
答案 0 :(得分:19)
对于像http://host:port/path?key=authType&value=Basic345
这样的请求,请尝试
path("path") {
get {
parameters('key.as[String], 'value.as[String]) { (key, value) =>
complete {
someFunction(key,value)
}
}
}
}
答案 1 :(得分:0)
即使在代码中不太明确,您也可以一次从上下文中提取所有查询参数。您可以按如下方式使用:
// Previous part of the Akka HTTP routes ...
extract(_.request.uri.query()) { params =>
complete {
someFunction(key,value)
}
}
答案 2 :(得分:0)
如果您希望将query parameters
提取为一张
extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
//useyourMethod()
}