请求转发
小于 1 分钟
golang请求转发
package main
import (
"log"
"net/http"
"net/http/httputil"
"net/url"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
func main() {
s := g.Server()
s.SetPort(8899)
group := s.Group("/")
group.ALL("/api", func(r *ghttp.Request) {
ForwardHandler(r.Response.ResponseWriter, r.Request)
})
s.Run()
}
func ForwardHandler(writer http.ResponseWriter, request *http.Request) {
u, err := url.Parse("http://localhost:8083" + "?" + request.URL.RawQuery)
if nil != err {
log.Println(err)
return
}
proxy := httputil.ReverseProxy{
Director: func(request *http.Request) {
request.URL = u
},
}
proxy.ServeHTTP(writer, request)
}