如何读取akka-http中的查询参数?
How to read query parameters in akka-http?
我现在知道 akka-http 库在处理 request.But 时编组和解组为 class 类型,我需要读取 GET
请求的请求参数。我尝试了 parameter()
方法,它返回 ParamDefAux
类型,但我需要这些值作为字符串类型
我检查以下问题的答案。
How can I parse out get request parameters in spray-routing?
但不能做我需要的。
请告诉我如何从请求中提取查询参数。或者如何从 ParamDefAux
中提取所需的值
请求URL
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...
}
对于像http://host:port/path?key=authType&value=Basic345
这样的请求尝试
path("path") {
get {
parameters('key.as[String], 'value.as[String]) { (key, value) =>
complete {
someFunction(key,value)
}
}
}
}
即使在代码中不那么明确,您也可以从上下文中一次提取所有查询参数。您可以按如下方式使用:
// Previous part of the Akka HTTP routes ...
extract(_.request.uri.query()) { params =>
complete {
someFunction(key,value)
}
}
如果您希望将 query parameters
提取为一个
extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
//useyourMethod()
}
我现在知道 akka-http 库在处理 request.But 时编组和解组为 class 类型,我需要读取 GET
请求的请求参数。我尝试了 parameter()
方法,它返回 ParamDefAux
类型,但我需要这些值作为字符串类型
我检查以下问题的答案。
How can I parse out get request parameters in spray-routing?
但不能做我需要的。
请告诉我如何从请求中提取查询参数。或者如何从 ParamDefAux
请求URL
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...
}
对于像http://host:port/path?key=authType&value=Basic345
这样的请求尝试
path("path") {
get {
parameters('key.as[String], 'value.as[String]) { (key, value) =>
complete {
someFunction(key,value)
}
}
}
}
即使在代码中不那么明确,您也可以从上下文中一次提取所有查询参数。您可以按如下方式使用:
// Previous part of the Akka HTTP routes ...
extract(_.request.uri.query()) { params =>
complete {
someFunction(key,value)
}
}
如果您希望将 query parameters
提取为一个
extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
//useyourMethod()
}