gpt4 book ai didi

http - 使用 httputil 和 gorilla/mux 进行反向代理

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:32 47 4
gpt4 key购买 nike

我一直在尝试使用 httputil.NewSingleHostReverseProxy(*Url) 在内部反向代理我的一些请求我注意到 gorilla mux 对此不满意,所以我在网上找到了解决 GET 请求问题的修复程序。但是,似乎 GET 是唯一可以正确反向代理的请求。

u = 使用 url.Parse 生成的 URL

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 请求很好,但是当发送 POSTPATCH 时,接收 http 方法设置为 GET。我已经确认代理的 r.Method 一端是 POST,另一端是 GET。有没有人以前遇到过这个问题,或者知道是什么导致了这个问题?

最佳答案

这个错误是由返回 301 的路由引起的,原因尚不清楚。 ReverseProxy 对 301、302、303 的回退行为是为了支持 RFC 2616

https://github.com/golang/go/issues/18570这将方法重写为 GET

关于http - 使用 httputil 和 gorilla/mux 进行反向代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51174375/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com