Vom documentation heißt es, dassWas ist der beste Weg, um nach einem leeren Anfragekörper zu suchen?
Für Server die Anforderung Körper fordert immer ungleich Null aber EOF sofort zurück, wenn kein Körper vorhanden ist.
Für ContentLength, die Dokumentation wird
Für Client-Anfragen, ein Wert von 0 bedeutet, unbekannt wenn Körper nicht gleich Null ist.
So ist es besser für ContentLength
r *http.Request
if r.ContentLength == 0 {
//empty body
}
zu überprüfen oder EOF überprüfen
type Input struct {
Name *string `json:"name"`
}
input := new(Input)
if err := json.NewDecoder(r.Body).Decode(input); err.Error() == "EOF" {
//empty body
}
EOF ist klar, ' 'Content-Length' ein Header ist, dass der Client kann oder nicht gesetzt. – thwd
Mist nicht mit dem String-Wert von Fehlern. Wenn Sie nach 'io.EOF' suchen, dann tun Sie' if err == io.EOF'. Ein Blick auf die String-Darstellung ist bestenfalls sehr fragil. –