Kev*_*lin 14 scala httprequest akka spray
这就是代码部分的样子
get{
respondWithMediaType(MediaTypes.`application/json`){
entity(as[HttpRequest]){
obj => complete{
println(obj)
"ok"
}
}
}
}~
Run Code Online (Sandbox Code Playgroud)
我可以将请求映射到一个spray.http.HttpRequest对象,我可以从这个对象中提取uri但我想有一种更简单的方法来解析get请求中的参数而不是手动执行.
例如,如果我的获取请求是
http://localhost:8080/url?id=23434&age=24
Run Code Online (Sandbox Code Playgroud)
我希望能够从这个请求中获得id和年龄
4le*_*x1v 30
实际上你可以做得更好.在路由中有两个指令:parameter
并且parameters
,我猜差别很明显,你也可以使用一些修饰符:!
和?
.如果是!
,则表示必须提供此参数或拒绝请求并?
返回选项,因此您可以在此情况下提供默认参数.例:
val route: Route = {
(path("search") & get) {
parameter("q"!) { query =>
....
}
}
}
val route: Route = {
(path("search") & get) {
parameters("q"!, "filter" ? "all") { (query, filter) =>
...
}
}
}
Run Code Online (Sandbox Code Playgroud)