如何在 revel golang 中获取 POST 参数

How to get the POST params in revel golang

如何在 revel 中获取 POST 请求的参数?我有这个:

func (c App) Ndc() revel.Result {
    fmt.Println(c.Params)
    //more simple code to return a json...
}

我已经测试了很多东西但没有任何效果,所以我更喜欢让代码尽可能干净。这是输出:

&{map[Origin:[LHR] Destination:[DME] DepartureDate:[2016-10-31] ArrivalDate:[]] map[] map[] map[] map[Origin:[LHR] Destination:[DME] DepartureDate:[2016-10-31] ArrivalDate:[]] map[] []}

内容不错,但是。。。我怎么才能一一得到这些变量和它们的值呢??
谢谢。

这只是一个简单的地图,所有值都在一个切片中。要从请求中获取 Origin 值:

c.Params["Origin"][0]

编辑: 以上不起作用,但这应该:

c.Params.Get("Origin")

终于找到答案了,不知道是不是最好的办法。经过一步步this post,我找到了解决办法:

 fmt.Println(c.Request.Form["Origin"][0])

输出为 LHR。

这取决于您请求中的 Content-Type 是否设置为 application/json / text/json。如果是这样,您需要将其显式转换为地图:

var j map[string]interface{}
c.Params.BindJSON(&j)
origin := j["Origin"] // etc.

否则这应该有效:

origin := c.Params.Form["Origin"]