Как получать статус код динамически
Есть вот такая строчка
w.WriteHeader(http.StatusOK)
Из которой я могу сделать вывод что статус это хэдер в http запросе/ответе. Отсюда вопрос: Как прочитать этот хэдер по аналогии с r.Method или r.Proto или r.Header.Get("User-Agent")
Мой сервер не делает запросов, но обрабатывает запросы поступающие извне. Как мне читать хэдер с кодом, с которым завершился http запрос к моему серверу.
func FillHTML(w http.ResponseWriter, r *http.Request) {
templ, err := template.ParseFiles("../static/out.tmpl.html")
if err != nil {
log.Fatal(status.Code(err), "parsing file error", err)
}
resp := ReqToGRPC(w, r)
data := Data{
Dat: resp,
}
templ.Execute(w, data)
log.Println(r.Method, "----->", templ.Name()) //здесь еще должен быть код с котороым завершился запрос
}
Ответы (1 шт):
Из которой я могу сделать вывод что статус это хэдер в http запросе/ответе
Вы делаете неправильный вывод. Код статуса (status code) - это выделенное поле в ответе. Он представляется числом из трёх цифр и передаётся в первой строке ответа. Он доступен клиенту как поле StatusCode структуры Response
Вам не нужно его читать. Вы этот код устанавливаете исходя из каких-то ваших соображений. Например, если запрос неверен, то вы устанавливаете статус BadRequest, если произошла ошибка обработки, то InternalServerError и так далее.