132 votes

Comment définir le code d'état HTTP sur http.ResponseWriter

Comment définir le code de statut 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é.

220voto

Tim Cooper Points 55292

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!"))
}
 

121voto

Yandry Pozo Points 2210

Outre 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

38voto

Marcel Novy Points 952
 w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)
 

liste complète ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X