我将使用的方法是 DELETE 请求,我有这个用于 Web 服务调用的 url:
http://www.localhost:9000/example/com/foo/bar
我想提取 /foo 和 /bar 并将其存储在一个变量中。
有人知道怎么做这个吗?谢谢!
我将 play2-mini 用于 Web 服务,并为 scala 发送 http 请求。
我将使用的方法是 DELETE 请求,我有这个用于 Web 服务调用的 url:
http://www.localhost:9000/example/com/foo/bar
我想提取 /foo 和 /bar 并将其存储在一个变量中。
有人知道怎么做这个吗?谢谢!
我将 play2-mini 用于 Web 服务,并为 scala 发送 http 请求。
Play 有一种非常复杂的参数传递方式,那就是通过 Routes 定义。在你的 conf/Routes 文件中定义一个像
GET /example/com/:foo controllers.yourcontroller.deleteAction(foo: String)
你什么时候进入
http://www.localhost:9000/example/com/user
在您的浏览器中,deleteAction
将调用由您的控制器定义的字符串“用户”将在其参数中传递给它foo
。在那里你可以操纵它。请注意,后跟冒号的部分 URI 是动态的。它将接受任何满足作为字符串要求的任何内容,并将通过将其存储在foo
变量中将其转发给 deleteAction。
您可以使用正则表达式,如以下代码所示:
object App extends Application {
def route = Routes(
Through("/people/(.*)".r) {groups: List[String] =>
Action{
val id :: Nil = groups
Ok(<h1>It works with regex!, id: {id}</h1>).as("text/html")
}
},
{
case GET(Path("/coco")) & QueryString(qs) => Action{ request =>
println(request.body)
println(play.api.Play.current)
val result = QueryString(qs,"foo").getOrElse("noh")
Ok(<h1>It works!, query String {result}</h1>).as("text/html") }
case GET(Path("/cocoa")) => Action{ request =>
Ok(<h1>It works with extractors!</h1>).as("text/html") }
},
Through("/flowers/id/") {groups: List[String] =>
Action{
val id :: Nil = groups
Ok(<h1>It works with simple startsWith! - id: {id}</h1>).as("text/html")
}
}
)
}