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  }