Відповіді:
Використовуйте http.ResponseWriter.WriteHeader. З документації:
WriteHeader надсилає заголовок відповіді HTTP із кодом стану. Якщо WriteHeader не викликається явно, перший виклик Write викличе неявний WriteHeader (http.StatusOK). Таким чином, явні виклики WriteHeader в основному використовуються для надсилання кодів помилок.
Приклад:
func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
Окрім WriteHeader(int)ви можете використовувати допоміжний метод http.Error , наприклад:
func yourFuncHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "my own error message", http.StatusForbidden)
// or using the default message error
http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
}
Методи http.Error () та http.StatusText () - ваші друзі
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)
повний список тут
http: superfluous response.WriteHeader call