如何在狂欢golang中获得POST参数

时间:2016-10-26 09:38:39

标签: post go params revel

如何在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[] []}

内容很好,但是......我怎样才能逐一获得这些变量及其值? 谢谢。

3 个答案:

答案 0 :(得分:0)

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

c.Params["Origin"][0]

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

c.Params.Get("Origin")

答案 1 :(得分:0)

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

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

否则这应该有效:

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

答案 2 :(得分:-1)

最后我找到答案,我不知道这是不是最好的方法。按照步骤this post进行操作后,我找到了解决方案:

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

输出为LHR。