HTTP durum kodunu bir üzerinde nasıl ayarlarım http.ResponseWriter
(ör. 500 veya 403'e)?
Normalde isteklerin kendilerine eklenen 200 durum koduna sahip olduğunu görebiliyorum.
Yanıtlar:
Kullanın http.ResponseWriter.WriteHeader
. Belgelerden:
WriteHeader, durum kodu içeren bir HTTP yanıt başlığı gönderir. WriteHeader açıkça çağrılmazsa, Write'a yapılan ilk çağrı örtük bir WriteHeader'ı (http.StatusOK) tetikler. Bu nedenle WriteHeader'a yapılan açık çağrılar çoğunlukla hata kodlarını göndermek için kullanılır.
Misal:
func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
WriteHeader(int)
Sizin dışında, örneğin http.Error yardımcı yöntemini de kullanabilirsiniz :
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 () ve http.StatusText () yöntemleri arkadaşlarınızdır
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)
tam liste burada
http: superfluous response.WriteHeader call