基于Hi example的Iris我想创建一个可以解析请求的应用程序,如
wget -qO- "http://localhost:8080/hi?name=John"
并回复Hi John!
。
这是我的处理程序代码:
func hi(ctx *iris.Context) {
name := ctx.ParamDecoded("name")
ctx.Writef("Hi %s!", name)
}
这只是回答Hi !
- 如何回答Hi John!
答案 0 :(得分:0)
重要:关于是否使用Iris存在争议,因为作者显然多次删除了历史记录,这使得它很难用作稳定的API。请阅读Why you should not use Iris for your Go并形成您自己的意见
只需使用ctx.FormValue(...)
代替ctx.ParamDecoded()
:
func hi(ctx *iris.Context) {
name := ctx.FormValue("name")
ctx.Writef("Hi %s!", name)
}
如果没有这样的表单值(即查询参数),则只返回一个空字符串。
如果要测试表单值是否确实存在,可以使用ctx.FormValues()
获取地图。但是,这有点复杂,因为映射包含每个键的字符串值列表:
func hi(ctx *iris.Context) {
form := ctx.FormValues()
names, ok := form["name"]
name := ""
if !ok { // No name parameter
name = "<unknown>"
} else { // At least one name
name = names[0]
}
ctx.Writef("Hi %s!", name)
}
答案 1 :(得分:0)
func hi(ctx *iris.Context) {
name := ctx.URLParam("name")
ctx.Writef("Hi %s!", name)
}