如何获取revel golang中的POST params
如何在revel中获取POST请求的参数??我有这个:如何获取revel golang中的POST params,post,go,params,revel,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] ArrivalDa
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[] []}
内容很好,但是。。。如何逐一获取这些变量及其值??谢谢。这只是一个简单的映射,所有值都在一个切片中。要从请求中获取
原点
值:
c.Params[“原点”][0]
编辑:上述操作无效,但应:
c.Params.Get(“原点”)
这只是一个简单的映射,所有值都在一个切片中。要从请求中获取原点
值:
c.Params[“原点”][0]
编辑:上述操作无效,但应:
c.Params.Get(“原点”)
我终于找到了答案,我不知道这是不是最好的办法。经过一步一步的跟进,我找到了解决方案:
fmt.Println(c.Request.Form["Origin"][0])
输出是LHR。最后我找到了答案,我不知道这是否是最好的方法。经过一步一步的跟进,我找到了解决方案:
fmt.Println(c.Request.Form["Origin"][0])
输出为LHR。这取决于请求中的
内容类型是否设置为application/json
/text/json
。如果是,则需要将其显式转换为映射:
var j map[string]interface{}
c.Params.BindJSON(&j)
origin := j["Origin"] // etc.
否则,这应该是可行的:
origin := c.Params.Form["Origin"]
这取决于请求中的内容类型是否设置为application/json
/text/json
。如果是,则需要将其显式转换为映射:
var j map[string]interface{}
c.Params.BindJSON(&j)
origin := j["Origin"] // etc.
否则,这应该是可行的:
origin := c.Params.Form["Origin"]
谢谢@TheHippo,但是我得到了这个错误:Go代码app/controllers/app.Go没有编译:无效操作:c.Controller.Params[“Origin”](type*revel.Params不支持索引)@EloyFernándezFranco你说得对。还有另一种方法。编辑了我的答案。再次感谢@TheHippo是的。。。您编辑的代码工作正常。。。现在的问题是什么方法更好(更快、更安全…)??调用函数(c.Params.Get(“Origin”))或检查和索引“对象”(c.Request.Form[“Origin”][0])…@EloyFernándezFranco在速度方面不应该有任何显著差异。如果不进行检查,我会说我的版本更安全,因为会检查是否存在具有该名称的值,而不是盲目访问映射并假设其中存在任何切片。好吧!!在这种情况下,我会用你的。谢谢@TheHippoThanks@TheHippo,但是我得到了这个错误:Go代码app/controllers/app.Go没有编译:无效操作:c.Controller.Params[“Origin”](type*revel.Params不支持索引)@EloyFernándezFranco你说得对。还有另一种方法。编辑了我的答案。再次感谢@TheHippo是的。。。您编辑的代码工作正常。。。现在的问题是什么方法更好(更快、更安全…)??调用函数(c.Params.Get(“Origin”))或检查和索引“对象”(c.Request.Form[“Origin”][0])…@EloyFernándezFranco在速度方面不应该有任何显著差异。如果不进行检查,我会说我的版本更安全,因为会检查是否存在具有该名称的值,而不是盲目访问映射并假设其中存在任何切片。好吧!!在这种情况下,我会用你的。谢谢你,河马