我正在尝试代理从Go后端到微服务的请求,并在将响应发送到客户端之前修改它。请求链是: Client -> Go后端-> microservice -> Go后端-> client
我在使用Go Gin框架。工作中间件:
func ReverseProxy(target string) gin.HandlerFunc {
log.Println(target)
url, err := url.Parse(target)
if err != nil {
log.Fatal(err)
}
proxy := httputil.NewSingleHostReverseProxy(url)
return func(c *gin.Context) {
proxy.ServeHTTP(c.Writer, c.Request)
}
}现在我的问题是:如何接收和修改微服务发送的响应?
发布于 2017-03-25 18:34:39
使用ReverseProxy.ModifyResponse怎么样?
例如,这将为响应添加一个自定义头。
func addCustomHeader(r *http.Response) error {
r.Header["Hello"] = []string{"World"}
return nil
}
proxy.ModifyResponse = addCustomHeaderhttps://stackoverflow.com/questions/43020079
复制相似问题