github.com/qiniu/go-sdk/v7@v7.27.0/internal/clientv2/interceptor_buffer_response.go (about) 1 package clientv2 2 3 import "net/http" 4 5 type bufferResponseInterceptor struct{} 6 7 func NewBufferResponseInterceptor() Interceptor { 8 return bufferResponseInterceptor{} 9 } 10 11 func (interceptor bufferResponseInterceptor) Priority() InterceptorPriority { 12 return InterceptorPriorityBufferResponse 13 } 14 15 func (interceptor bufferResponseInterceptor) Intercept(req *http.Request, handler Handler) (resp *http.Response, err error) { 16 toBufferResponse := req.Context().Value(bufferResponseContextKey{}) != nil 17 resp, err = handler(req) 18 if err == nil && toBufferResponse { 19 err = bufferResponse(resp) 20 } 21 return 22 }