Comment définir le code d'état HTTP sur un http.ResponseWriter
(par exemple, 500 ou 403)?
Je peux voir que les demandes ont normalement un code d’état de 200 qui leur est associé.
Utilisez http.ResponseWriter.WriteHeader
. De la documentation:
WriteHeader envoie un en-tête de réponse HTTP avec le code d'état. Si WriteHeader n'est pas appelé explicitement, le premier appel à Write déclenchera un WriteHeader implicite (http.StatusOK). Ainsi, les appels explicites à WriteHeader sont principalement utilisés pour envoyer des codes d'erreur.
Exemple:
_func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
_
En dehors de WriteHeader(int)
, vous pouvez utiliser la méthode d'assistance http.Error , par exemple:
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)
}
les méthodes http.Error () et http.StatusText () sont vos amis
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)
liste complète ici