在http请求中,我想知道请求是否包含特定参数,类似于PHP的isset
函数。如何在Go中测试?感谢。
答案 0 :(得分:6)
解析完请求后,您始终可以检查参数的值类型是否等于该类型的零值。
例如,您可以使用“逗号,确定”惯用法来检查查询参数:
u, err := url.Parse("http://google.com/search?q=term")
if err != nil {
log.Fatal(err)
}
q := u.Query()
if _, ok := q["q"]; ok {
// process q
}
答案 1 :(得分:1)
同样的问题发布在Google网上论坛上,这就是那里的解决方案:
func PrintUser(w http.ResponseWriter, r *http.Request) {
user := r.FormValue("user")
pass := r.FormValue("pass")
if user == "" || pass == "" {
fmt.Fprintf(w, "Missing username or password")
return
}
fmt.Fprintf(w, "Hi %s!", user) //I doubt you want to print the password.
}