Interface ClientHttpRequestInterceptor

All Known Implementing Classes:
BasicAuthenticationInterceptor
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ClientHttpRequestInterceptor
Contract to intercept client-side HTTP requests. Implementations can be registered with RestClient or RestTemplate to modify the outgoing request and/or the incoming response.
Since:
3.1
Author:
Arjen Poutsma
  • Method Details

    • intercept

      ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException
      Intercept the given request, and return a response. The given ClientHttpRequestExecution allows the interceptor to pass on the request and response to the next entity in the chain.

      A typical implementation of this method would follow the following pattern:

      1. Examine the request and body.
      2. Optionally wrap the request to filter HTTP attributes.
      3. Optionally modify the body of the request.
      4. Optionally wrap the response to filter HTTP attributes.

      Note: if the interceptor throws an exception after receiving a response, it must close the response via ClientHttpResponse.close().

      Parameters:
      request - the request, containing method, URI, and headers
      body - the body of the request
      execution - the request execution
      Returns:
      the response
      Throws:
      IOException - in case of I/O errors