[go] http.ResponseWriter에서 HTTP 상태 코드를 설정하는 방법

에 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)

여기에 전체 목록


답변