英文:
How to get the POST params in revel golang
问题
如何在revel中获取POST请求的参数?我有以下代码:
func (c App) Ndc() revel.Result {
fmt.Println(c.Params)
//更简单的代码返回一个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[] []}
内容是正确的,但是...我如何逐个获取这些变量及其值呢?
谢谢。
英文:
How can I get the parameters on a POST request in revel?? I have this:
func (c App) Ndc() revel.Result {
fmt.Println(c.Params)
//more simple code to return a json...
}
I have tested many things but nothing works, so I prefer let the code cleaner as possible. This is the output:
&{map[Origin:[LHR] Destination:[DME] DepartureDate:[2016-10-31] ArrivalDate:[]] map[] map[] map[] map[Origin:[LHR] Destination:[DME] DepartureDate:[2016-10-31] ArrivalDate:[]] map[] []}
The content is good, but... how can I get one by one these variables and their values??
Thank you.
答案1
得分: 0
这取决于你的请求中的Content-Type
是否设置为application/json
/ text/json
。如果是这样的话,你需要显式地将其转换为一个映射(map):
var j map[string]interface{}
c.Params.BindJSON(&j)
origin := j["Origin"] // 等等。
否则,以下代码应该可以工作:
origin := c.Params.Form["Origin"]
英文:
It depends on whether the Content-Type
in your request is set to application/json
/ text/json
. If so, you will need to explicitly convert it to a map:
var j map[string]interface{}
c.Params.BindJSON(&j)
origin := j["Origin"] // etc.
Otherwise this should work:
origin := c.Params.Form["Origin"]
答案2
得分: -1
这只是一个简单的映射,所有的值都在一个切片中。要从请求中获取Origin
的值:
c.Params.Get("Origin")
**编辑:**上述方法不起作用,但这个应该可以:
c.Params.Get("Origin")
英文:
It's all just a simple map and all values are in an slice. To get the Origin
value from the request:
<!-- language: go -->
c.Params["Origin"][0]
EDIT: The above does not work, but this should:
<!-- language: go -->
c.Params.Get("Origin")
答案3
得分: -1
最后我找到了一个答案,不知道是否是最好的方法。按照这篇帖子的步骤,我找到了解决方案:
fmt.Println(c.Request.Form["Origin"][0])
输出结果是LHR。
英文:
Finally I find an answer, I don't know if it is the best way. After follow step by step this post, I find the solution:
fmt.Println(c.Request.Form["Origin"][0])
The output is LHR.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论