2 回答

TA贡献1856条经验 获得超17个赞
您应该能够使用缓存包装 ,该缓存可以根据请求使用缓存,也可以回退到 .http.DefaultTransporthttp.DefaultTransport
package main
import (
"net/http"
"net/http/httputil"
)
var _ http.RoundTripper = &CachingTransport{}
type CachingTransport struct {
// put your cache here
}
func (c *CachingTransport) RoundTrip(request *http.Request) (*http.Response, error) {
// determine whether to use the cache and return, or use the default transport
return http.DefaultTransport.RoundTrip(request)
}
func main() {
_ = httputil.ReverseProxy{
Transport: &CachingTransport{},
}
}

TA贡献1847条经验 获得超7个赞
A 具有单个导出方法,即响应作者,要求 *请求),
这使得它实现了网络/http。处理程序
接口。httputil.ReverseProxy
因此,基本上,在某个地方,您现在正在使用一个普通的实例,而不是使用您的自定义类型的实例,该实例也可以实现,保留指向 的实例的指针,并处理请求本身或调用该实例的。httputil.ReverseProxy
net/http.Handler
httputil.ReverseProxy
ReverseProxy
ServeHTTP
- 2 回答
- 0 关注
- 187 浏览
添加回答
举报