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 關注
- 170 瀏覽
添加回答
舉報