Я пытался отменить прокси некоторые мои запросы внутренне с помощью httputil.NewSingleHostReverseProxy(*Url)
Я заметил, что Gorilla Mux не устраивает этого, поэтому я нашел в Интернете исправление, которое решило проблему для GET
запросов.
Тем не менее, похоже, что GET
- это единственный запрос, который будет правильно перенаправлен обратно.
u = generated URL with url.Parse
api.Path("/feature").Methods("POST").HandlerFunc(handler(httputil.NewSingleHostReverseProxy(u)))
func handler(p *httputil.ReverseProxy) func(http.ResponseWriter, *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
r.URL.Path = mux.Vars(r)["path"]
p.ServeHTTP(w, r)
}
}
Это прекрасно работает для GET
запросов, но при отправке POST
или PATCH
для принимающего http-метода устанавливается GET
. Я подтвердил, что у прокси r.Method
есть POST
на одном конце и GET
на другом.
Кто-нибудь сталкивался с этой проблемой раньше или знает, что может быть причиной этого?