Class JdkBlockingHttpClient

java.lang.Object
io.micronaut.http.client.jdk.JdkBlockingHttpClient
All Implemented Interfaces:
io.micronaut.context.LifeCycle<io.micronaut.http.client.BlockingHttpClient>, io.micronaut.http.client.BlockingHttpClient, Closeable, AutoCloseable

@Internal public class JdkBlockingHttpClient extends Object implements io.micronaut.http.client.BlockingHttpClient
HttpClient implementation for java.net.http.* HTTP Client.
Since:
4.0.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final HttpClient
     
    protected final List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry>
     
    protected final String
     
    protected final io.micronaut.http.client.HttpClientConfiguration
     
    protected final String
     
    protected final io.micronaut.core.convert.ConversionService
     
    protected final CookieDecoder
     
    protected final CookieManager
     
    protected final io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext>
     
    static final String
     
    static final String
     
    protected final io.micronaut.http.client.HttpVersionSelection
     
    protected final io.micronaut.http.client.LoadBalancer
     
    protected final org.slf4j.Logger
     
    protected io.micronaut.http.codec.MediaTypeCodecRegistry
     
    protected io.micronaut.http.body.MessageBodyHandlerRegistry
     
    protected final io.micronaut.http.bind.RequestBinderRegistry
     
    protected final JdkClientSslBuilder
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    JdkBlockingHttpClient(io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpVersionSelection httpVersion, io.micronaut.http.client.HttpClientConfiguration configuration, String contextPath, @Nullable io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> filterResolver, @Nullable List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry> clientFilterEntries, io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry, io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry, io.micronaut.http.bind.RequestBinderRegistry requestBinderRegistry, String clientId, io.micronaut.core.convert.ConversionService conversionService, JdkClientSslBuilder sslBuilder, CookieDecoder cookieDecoder)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected <I, R extends io.micronaut.http.HttpResponse<?>>
    org.reactivestreams.Publisher<R>
    applyFilterToResponsePublisher(io.micronaut.http.HttpRequest<I> request, URI requestURI, org.reactivestreams.Publisher<R> responsePublisher)
     
    void
     
    <I, O, E> io.micronaut.http.HttpResponse<O>
    exchange(io.micronaut.http.HttpRequest<I> request, @Nullable io.micronaut.core.type.Argument<O> bodyType, @Nullable io.micronaut.core.type.Argument<E> errorType)
     
    protected <I, O> reactor.core.publisher.Flux<io.micronaut.http.HttpResponse<O>>
    exchangeImpl(io.micronaut.http.HttpRequest<I> request, @Nullable io.micronaut.core.type.Argument<O> bodyType)
     
    io.micronaut.http.codec.MediaTypeCodecRegistry
     
    io.micronaut.http.body.MessageBodyHandlerRegistry
     
    boolean
     
    protected <I> reactor.core.publisher.Mono<HttpRequest>
    mapToHttpRequest(io.micronaut.http.HttpRequest<I> request, @Nullable io.micronaut.core.type.Argument<?> bodyType)
    Convert the Micronaut request to a JDK request.
    protected reactor.core.publisher.Mono<URI>
    resolveRequestUri(io.micronaut.http.HttpRequest<?> request)
     
    protected <O> @NonNull io.micronaut.http.HttpResponse<O>
    response(HttpResponse<byte[]> netResponse, @NonNull io.micronaut.core.type.Argument<O> bodyType)
    Convert the JDK response to a Micronaut response.
    protected <O> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>>
    responsePublisher(io.micronaut.http.HttpRequest<?> request, @Nullable io.micronaut.core.type.Argument<O> bodyType)
     
    void
    setMediaTypeCodecRegistry(io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry)
     
    void
    setMessageBodyHandlerRegistry(io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry)
     
    io.micronaut.http.client.BlockingHttpClient
     
    io.micronaut.http.client.BlockingHttpClient
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.micronaut.http.client.BlockingHttpClient

    exchange, exchange, exchange, exchange, exchange, exchange, refresh, retrieve, retrieve, retrieve, retrieve, retrieve, retrieve, retrieve
  • Field Details

    • H2C_ERROR_MESSAGE

      public static final String H2C_ERROR_MESSAGE
      See Also:
    • H3_ERROR_MESSAGE

      public static final String H3_ERROR_MESSAGE
      See Also:
    • WEIRD_ALPN_ERROR_MESSAGE

      public static final String WEIRD_ALPN_ERROR_MESSAGE
      See Also:
    • loadBalancer

      protected final io.micronaut.http.client.LoadBalancer loadBalancer
    • httpVersion

      protected final io.micronaut.http.client.HttpVersionSelection httpVersion
    • configuration

      protected final io.micronaut.http.client.HttpClientConfiguration configuration
    • contextPath

      protected final String contextPath
    • client

      protected final HttpClient client
    • cookieManager

      protected final CookieManager cookieManager
    • requestBinderRegistry

      protected final io.micronaut.http.bind.RequestBinderRegistry requestBinderRegistry
    • clientId

      protected final String clientId
    • conversionService

      protected final io.micronaut.core.convert.ConversionService conversionService
    • sslBuilder

      protected final JdkClientSslBuilder sslBuilder
    • log

      protected final org.slf4j.Logger log
    • filterResolver

      protected final io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> filterResolver
    • clientFilterEntries

      protected final List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry> clientFilterEntries
    • cookieDecoder

      protected final CookieDecoder cookieDecoder
    • mediaTypeCodecRegistry

      protected io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry
    • messageBodyHandlerRegistry

      protected io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry
  • Constructor Details

    • JdkBlockingHttpClient

      public JdkBlockingHttpClient(io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpVersionSelection httpVersion, io.micronaut.http.client.HttpClientConfiguration configuration, String contextPath, @Nullable @Nullable io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> filterResolver, @Nullable @Nullable List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry> clientFilterEntries, io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry, io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry, io.micronaut.http.bind.RequestBinderRegistry requestBinderRegistry, String clientId, io.micronaut.core.convert.ConversionService conversionService, JdkClientSslBuilder sslBuilder, CookieDecoder cookieDecoder)
  • Method Details

    • exchange

      public <I, O, E> io.micronaut.http.HttpResponse<O> exchange(@NonNull io.micronaut.http.HttpRequest<I> request, @Nullable @Nullable io.micronaut.core.type.Argument<O> bodyType, @Nullable @Nullable io.micronaut.core.type.Argument<E> errorType)
      Specified by:
      exchange in interface io.micronaut.http.client.BlockingHttpClient
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.BlockingHttpClient>
    • start

      public io.micronaut.http.client.BlockingHttpClient start()
      Specified by:
      start in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.BlockingHttpClient>
    • stop

      public io.micronaut.http.client.BlockingHttpClient stop()
      Specified by:
      stop in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.BlockingHttpClient>
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.BlockingHttpClient>
    • getMediaTypeCodecRegistry

      public io.micronaut.http.codec.MediaTypeCodecRegistry getMediaTypeCodecRegistry()
      Returns:
      The MediaTypeCodecRegistry
    • setMediaTypeCodecRegistry

      public void setMediaTypeCodecRegistry(io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry)
      Parameters:
      mediaTypeCodecRegistry - The MediaTypeCodecRegistry
    • getMessageBodyHandlerRegistry

      public io.micronaut.http.body.MessageBodyHandlerRegistry getMessageBodyHandlerRegistry()
      Returns:
      The MessageBodyHandlerRegistry
    • setMessageBodyHandlerRegistry

      public void setMessageBodyHandlerRegistry(io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry)
      Parameters:
      messageBodyHandlerRegistry - The MessageBodyHandlerRegistry
    • mapToHttpRequest

      protected <I> reactor.core.publisher.Mono<HttpRequest> mapToHttpRequest(@NonNull io.micronaut.http.HttpRequest<I> request, @Nullable @Nullable io.micronaut.core.type.Argument<?> bodyType)
      Convert the Micronaut request to a JDK request.
      Type Parameters:
      I - The body type
      Parameters:
      request - The Micronaut request object
      bodyType - The body type
      Returns:
      A JDK request object
    • resolveRequestUri

      protected reactor.core.publisher.Mono<URI> resolveRequestUri(io.micronaut.http.HttpRequest<?> request)
    • response

      @NonNull protected <O> @NonNull io.micronaut.http.HttpResponse<O> response(@NonNull HttpResponse<byte[]> netResponse, @NonNull @NonNull io.micronaut.core.type.Argument<O> bodyType)
      Convert the JDK response to a Micronaut response.
      Type Parameters:
      O - The body type
      Parameters:
      netResponse - The JDK response
      bodyType - The body type
      Returns:
      A Micronaut response
    • exchangeImpl

      protected <I, O> reactor.core.publisher.Flux<io.micronaut.http.HttpResponse<O>> exchangeImpl(@NonNull io.micronaut.http.HttpRequest<I> request, @Nullable @Nullable io.micronaut.core.type.Argument<O> bodyType)
    • applyFilterToResponsePublisher

      protected <I, R extends io.micronaut.http.HttpResponse<?>> org.reactivestreams.Publisher<R> applyFilterToResponsePublisher(io.micronaut.http.HttpRequest<I> request, URI requestURI, org.reactivestreams.Publisher<R> responsePublisher)
    • responsePublisher

      protected <O> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>> responsePublisher(@NonNull io.micronaut.http.HttpRequest<?> request, @Nullable @Nullable io.micronaut.core.type.Argument<O> bodyType)