如何在 http. ResponseWriter 上设置 HTTP状态码

如何设定 HTTP状态码(例如500或403) ?

我可以看到,请求通常有一个状态代码200附加到他们。

138723 次浏览

使用 http.ResponseWriter.WriteHeader.From 文档:

WriteHeader 发送包含状态代码的 HTTP 响应头。如果未显式调用 WriteHeader,则对 Write 的第一个调用将触发一个隐式 WriteHeader (http。状态 OK)。因此,对 WriteHeader 的显式调用主要用于发送错误代码。

例如:

func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)

完整列表 给你

除了 WriteHeader(int)之外,您还可以使用 helper 方法 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()方法是您的朋友