0

基于Iris的Hi 示例,我想创建一个可以解析请求的应用程序,例如

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!

4

2 回答 2

0

重要提示:关于是否使用 Iris 存在争议,因为作者显然多次删除了历史记录,这使得它很难用作稳定的 API。请阅读为什么你不应该在 Go 中使用 Iris并形成你自己的意见

只需使用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)
}
于 2017-01-26T23:26:38.097 回答
0
func hi(ctx *iris.Context) {
    name := ctx.URLParam("name")
    ctx.Writef("Hi %s!", name)
}
于 2020-01-19T02:46:10.143 回答