Вызов ParseForm в начале обработчика.Если этот метод возвращает ошибку, то предел размера был нарушен или тело запроса каким-то образом было недействительным.Запишите состояние ошибки и возвратите из обработчика.
Нет простого способа определить, является ли ошибка результатом нарушения ограничения размера или какой-либо другой ошибки.
func PostHandler(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil {
http.Error(w, "Bad Request", http.StatusBadRequest)
return
}
book := r.FormValue("email")
fmt.Fprintf(w, "You've requested the book: %s\n", book)
}
В зависимости отваши потребности, может быть лучше поместить чек в промежуточное программное обеспечение:
func maxBytes(f http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
r.Body = http.MaxBytesReader(w, r.Body, 10)
if err := r.ParseForm(); err != nil {
http.Error(w, "Bad Request", http.StatusBadRequest)
return
}
f(w, r)
}
}