Interface HttpClient

All Superinterfaces:
AutoCloseable, Closeable, LifeCycle<HttpClient>
All Known Subinterfaces:
JdkHttpClient, StreamingHttpClient
All Known Implementing Classes:
DefaultHttpClient, DefaultJdkHttpClient

public interface HttpClient extends Closeable, LifeCycle<HttpClient>
A non-blocking HTTP client interface designed around the Micronaut API and Reactive Streams.
Since:
1.0
Author:
Graeme Rocher
  • Field Details

    • DEFAULT_ERROR_TYPE

      static final Argument<JsonError> DEFAULT_ERROR_TYPE
      The default error type.
  • Method Details

    • toBlocking

      BlockingHttpClient toBlocking()
      Returns:
      A blocking HTTP client suitable for testing and non-production scenarios.
    • exchange

      <I,O,E> Publisher<HttpResponse<O>> exchange(HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType)

      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.

      This method will send a Content-Length header and except a content length header the response and is designed for simple non-streaming exchanges of data

      By default the exchange Content-Type is application/json, unless otherwise specified in the passed HttpRequest

      Type Parameters:
      I - The request body type
      O - The response body type
      E - The error type
      Parameters:
      request - The HttpRequest to execute
      bodyType - The body type
      errorType - The error type
      Returns:
      A Publisher that emits the full HttpResponse object
    • exchange

      default <I,O> Publisher<HttpResponse<O>> exchange(HttpRequest<I> request, Argument<O> bodyType)

      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.

      This method will send a Content-Length header and except a content length header the response and is designed for simple non-streaming exchanges of data

      By default the exchange Content-Type is application/json, unless otherwise specified in the passed HttpRequest

      Type Parameters:
      I - The request body type
      O - The response body type
      Parameters:
      request - The HttpRequest to execute
      bodyType - The body type
      Returns:
      A Publisher that emits the full HttpResponse object
    • exchange

      default <I> Publisher<HttpResponse<ByteBuffer>> exchange(HttpRequest<I> request)
      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher.
      Type Parameters:
      I - The request body type
      Parameters:
      request - The HttpRequest to execute
      Returns:
      A Publisher that emits the full HttpResponse object
    • exchange

      default Publisher<HttpResponse<ByteBuffer>> exchange(String uri)
      Perform an HTTP GET request for the given request object emitting the full HTTP response from returned Publisher.
      Parameters:
      uri - The Uri
      Returns:
      A Publisher that emits the full HttpResponse object
    • exchange

      default <O> Publisher<HttpResponse<O>> exchange(String uri, Class<O> bodyType)
      Perform an HTTP GET request for the given request object emitting the full HTTP response from returned Publisher.
      Type Parameters:
      O - The response body type
      Parameters:
      uri - The request URI
      bodyType - The body type
      Returns:
      A Publisher that emits the full HttpResponse object
    • exchange

      default <I,O> Publisher<HttpResponse<O>> exchange(HttpRequest<I> request, Class<O> bodyType)
      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.
      Type Parameters:
      I - The request body type
      O - The response body type
      Parameters:
      request - The HttpRequest to execute
      bodyType - The body type
      Returns:
      A Publisher that emits the full HttpResponse object
    • retrieve

      default <I,O,E> Publisher<O> retrieve(HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType)
      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.
      Type Parameters:
      I - The request body type
      O - The response body type
      E - The error type
      Parameters:
      request - The HttpRequest to execute
      bodyType - The body type
      errorType - The error type
      Returns:
      A Publisher that emits a result of the given type
    • retrieve

      default <I,O> Publisher<O> retrieve(HttpRequest<I> request, Argument<O> bodyType)
      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.
      Type Parameters:
      I - The request body type
      O - The response body type
      Parameters:
      request - The HttpRequest to execute
      bodyType - The body type
      Returns:
      A Publisher that emits a result of the given type
    • retrieve

      default <I,O> Publisher<O> retrieve(HttpRequest<I> request, Class<O> bodyType)
      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.
      Type Parameters:
      I - The request body type
      O - The response body type
      Parameters:
      request - The HttpRequest to execute
      bodyType - The body type
      Returns:
      A Publisher that emits a result of the given type
    • retrieve

      default <I> Publisher<String> retrieve(HttpRequest<I> request)
      Perform an HTTP request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.
      Type Parameters:
      I - The request body type
      Parameters:
      request - The HttpRequest to execute
      Returns:
      A Publisher that emits String result
    • retrieve

      default Publisher<String> retrieve(String uri)
      Perform an HTTP GET request for the given request object emitting the full HTTP response from returned Publisher and converting the response body to the specified type.
      Parameters:
      uri - The URI
      Returns:
      A Publisher that emits String result
    • refresh

      default HttpClient refresh()
      Description copied from interface: LifeCycle
      Refreshes the current life cycle object. Effectively this calls LifeCycle.stop() followed by LifeCycle.start().
      Specified by:
      refresh in interface LifeCycle<HttpClient>
      Returns:
      This lifecycle component
    • create

      static HttpClient create(@Nullable URL url)
      Create a new HttpClient. Note that this method should only be used outside the context of a Micronaut application. The returned HttpClient is not subject to dependency injection. The creator is responsible for closing the client to avoid leaking connections. Within a Micronaut application use Inject to inject a client instead.
      Parameters:
      url - The base URL
      Returns:
      The client
    • create

      static HttpClient create(@Nullable URL url, HttpClientConfiguration configuration)
      Create a new HttpClient with the specified configuration. Note that this method should only be used outside the context of an application. Within Micronaut use Inject to inject a client instead
      Parameters:
      url - The base URL
      configuration - the client configuration
      Returns:
      The client
      Since:
      2.2.0