Jak ustawić kod stanu HTTP w urządzeniu http.ResponseWriter
(np. Na 500 lub 403)?
Widzę, że żądania zwykle mają dołączony kod statusu 200.
Użyj http.ResponseWriter.WriteHeader
. Z dokumentacji:
WriteHeader wysyła nagłówek odpowiedzi HTTP z kodem stanu. Jeśli WriteHeader nie zostanie wywołany jawnie, pierwsze wywołanie Write wyzwoli niejawny WriteHeader (http.StatusOK). Dlatego jawne wywołania metody WriteHeader są używane głównie do wysyłania kodów błędów.
Przykład:
func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
Oprócz tego
WriteHeader(int)
możesz skorzystać z metody pomocniczej http.Error , na przykład:Metody http.Error () i http.StatusText () są Twoimi przyjaciółmi
źródło
pełna lista tutaj
źródło
http: superfluous response.WriteHeader call