에 HTTP 상태 코드를 어떻게 설정합니까 http.ResponseWriter
(예 : 500 또는 403)?
일반적으로 요청에 200의 상태 코드가 첨부되어 있음을 알 수 있습니다.
답변:
사용 http.ResponseWriter.WriteHeader
. 문서에서 :
WriteHeader는 상태 코드와 함께 HTTP 응답 헤더를 보냅니다. WriteHeader가 명시 적으로 호출되지 않은 경우 Write에 대한 첫 번째 호출은 암시 적 WriteHeader (http.StatusOK)를 트리거합니다. 따라서 WriteHeader에 대한 명시 적 호출은 주로 오류 코드를 보내는 데 사용됩니다.
예:
func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("500 - Something bad happened!"))
}
이외에도 http.ErrorWriteHeader(int)
도우미 메서드를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
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 () 메서드는 친구입니다.
w.WriteHeader(http.StatusInternalServerError)
w.WriteHeader(http.StatusForbidden)
여기에 전체 목록
http: superfluous response.WriteHeader call