Как я могу обнаружить и отреагировать на заголовок ответа из обратного прокси-сервера?
Я пишу метод промежуточного программного обеспечения, который вводится в обратный прокси-сервер. Я подтвердил, что промежуточное программное обеспечение вызывается.
Сервер устанавливает заголовок ответа X-SERVER-VAR
со значением Foo
. Мне нужно обнаружить и запустить некоторый код, основанный на значении.
Я подумал, что прочитал бы ResponseWriter, думая, что ответ сервера должен включать значение, но ничего не регистрируется.
func SessionHandler(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Printf(w.Header().Get("X-SERVER-VAR"))
next.ServeHTTP(w, r)
})
}
Я использую github.com/gorilla/mux
для присоединения этого обработчика промежуточного программного обеспечения.
Я настраиваю все с помощью кода, подобного приведенному ниже (упрощено для этого вопроса).
func newProxy(remote string) http.Handler {
proxyurl, err := url.Parse(remote)
if err != nil {
panic(err)
}
proxy := httputil.NewSingleHostReverseProxy(proxyurl)
return proxy
}
func main() {
r := mux.NewRouter()
r.Use(SessionHandler)
proxy := newProxy("https://www.example.com/")
r.PathPrefix("/").Handler(proxy)
log.Fatal(http.ListenAndServe(":9001", r))
}
Если это не такне возможно с промежуточным ПО, возможно ли обнаружить заголовок ответа с сервера другим способом?