In einer HTTP-Anfrage möchte ich wissen, ob eine Anfrage einen bestimmten Parameter enthält, ähnlich der PHP isset
Funktion. Wie man es in Go testet? Vielen Dank.Gibt es eine ähnliche Funktion wie PHP isset() in Go?
2
A
Antwort
1
Das gleiche Problem auf Google Groups veröffentlicht wurde, ist dies die Lösung da:
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.
}
6
Sobald Sie die Anfrage analysiert haben, können Sie immer den Wert Typ der Parameter überprüfen, um gleich der Nullwert dieses Typs.
Zum Beispiel können Sie das "Komma, ok" Idiom verwenden, um Abfrageparameter zu überprüfen:
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
}