Class DefaultHttpClient

  • All Implemented Interfaces:
    io.micronaut.context.LifeCycle<io.micronaut.http.client.HttpClient>, io.micronaut.http.client.HttpClient, io.micronaut.http.client.ProxyHttpClient, io.micronaut.http.client.sse.SseClient, io.micronaut.http.client.StreamingHttpClient, io.micronaut.websocket.WebSocketClient, java.io.Closeable, java.lang.AutoCloseable

    @Internal
    public class DefaultHttpClient
    extends java.lang.Object
    implements io.micronaut.websocket.WebSocketClient, io.micronaut.http.client.HttpClient, io.micronaut.http.client.StreamingHttpClient, io.micronaut.http.client.sse.SseClient, io.micronaut.http.client.ProxyHttpClient, java.io.Closeable, java.lang.AutoCloseable
    Default implementation of the HttpClient interface based on Netty.
    Since:
    1.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected io.micronaut.core.io.buffer.ByteBufferFactory<io.netty.buffer.ByteBufAllocator,​io.netty.buffer.ByteBuf> byteBufferFactory  
      protected io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry  
      • Fields inherited from interface io.micronaut.http.client.HttpClient

        DEFAULT_ERROR_TYPE
      • Fields inherited from interface io.micronaut.websocket.WebSocketClient

        SCHEME_WS, SCHEME_WSS
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultHttpClient()  
      DefaultHttpClient​(io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, java.lang.String contextPath, java.util.concurrent.ThreadFactory threadFactory, NettyClientSslBuilder nettyClientSslBuilder, io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry, io.micronaut.core.annotation.AnnotationMetadataResolver annotationMetadataResolver, java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories, io.micronaut.http.filter.HttpClientFilter... filters)
      Construct a client for the given arguments.
      DefaultHttpClient​(io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.client.HttpClientConfiguration configuration, java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories)  
      DefaultHttpClient​(io.micronaut.http.client.LoadBalancer loadBalancer, io.micronaut.http.HttpVersion explicitHttpVersion, io.micronaut.http.client.HttpClientConfiguration configuration, java.lang.String contextPath, io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> filterResolver, java.util.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry<io.micronaut.http.filter.HttpClientFilter>> clientFilterEntries, java.util.concurrent.ThreadFactory threadFactory, NettyClientSslBuilder nettyClientSslBuilder, io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry, io.micronaut.websocket.context.WebSocketBeanRegistry webSocketBeanRegistry, io.micronaut.http.bind.RequestBinderRegistry requestBinderRegistry, io.netty.channel.EventLoopGroup eventLoopGroup, io.netty.channel.ChannelFactory socketChannelFactory, java.util.Collection<io.micronaut.http.netty.channel.ChannelPipelineListener> pipelineListeners, NettyClientCustomizer clientCustomizer, java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories, java.lang.String informationalServiceId)
      Construct a client for the given arguments.
      DefaultHttpClient​(java.net.URI uri)  
      DefaultHttpClient​(java.net.URI uri, io.micronaut.http.client.HttpClientConfiguration configuration)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected io.micronaut.http.client.netty.DefaultHttpClient.NettyRequestWriter buildNettyRequest​(io.micronaut.http.MutableHttpRequest request, java.net.URI requestURI, io.micronaut.http.MediaType requestContentType, boolean permitsBody, io.micronaut.core.type.Argument<?> bodyType, java.util.function.Consumer<? super java.lang.Throwable> onError)  
      void close()  
      <T extends java.lang.AutoCloseable>
      org.reactivestreams.Publisher<T>
      connect​(java.lang.Class<T> clientEndpointType, io.micronaut.http.MutableHttpRequest<?> request)  
      <T extends java.lang.AutoCloseable>
      org.reactivestreams.Publisher<T>
      connect​(java.lang.Class<T> clientEndpointType, java.util.Map<java.lang.String,​java.lang.Object> parameters)  
      <I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream​(io.micronaut.http.HttpRequest<I> request)  
      <I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<?> errorType)  
      <I> org.reactivestreams.Publisher<io.micronaut.http.sse.Event<io.micronaut.core.io.buffer.ByteBuffer<?>>> eventStream​(io.micronaut.http.HttpRequest<I> request)  
      <I,​B>
      org.reactivestreams.Publisher<io.micronaut.http.sse.Event<B>>
      eventStream​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<B> eventType)  
      <I,​B>
      org.reactivestreams.Publisher<io.micronaut.http.sse.Event<B>>
      eventStream​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<B> eventType, io.micronaut.core.type.Argument<?> errorType)  
      <I,​O,​E>
      org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>>
      exchange​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<O> bodyType, io.micronaut.core.type.Argument<E> errorType)  
      <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream​(io.micronaut.http.HttpRequest<I> request)  
      <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<?> errorType)  
      io.micronaut.http.client.HttpClientConfiguration getConfiguration()  
      protected java.lang.Object getLoadBalancerDiscriminator()  
      org.slf4j.Logger getLog()  
      io.micronaut.http.codec.MediaTypeCodecRegistry getMediaTypeCodecRegistry()  
      boolean isRunning()  
      <I> org.reactivestreams.Publisher<java.util.Map<java.lang.String,​java.lang.Object>> jsonStream​(io.micronaut.http.HttpRequest<I> request)  
      <I,​O>
      org.reactivestreams.Publisher<O>
      jsonStream​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<O> type)  
      <I,​O>
      org.reactivestreams.Publisher<O>
      jsonStream​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<O> type, io.micronaut.core.type.Argument<?> errorType)  
      <I,​O>
      org.reactivestreams.Publisher<O>
      jsonStream​(io.micronaut.http.HttpRequest<I> request, java.lang.Class<O> type)  
      protected java.net.URI prependContextPath​(java.net.URI requestURI)  
      org.reactivestreams.Publisher<io.micronaut.http.MutableHttpResponse<?>> proxy​(io.micronaut.http.HttpRequest<?> request)  
      org.reactivestreams.Publisher<io.micronaut.http.MutableHttpResponse<?>> proxy​(io.micronaut.http.HttpRequest<?> request, io.micronaut.http.client.ProxyRequestOptions options)  
      protected <I> org.reactivestreams.Publisher<java.net.URI> resolveRedirectURI​(io.micronaut.http.HttpRequest<?> parentRequest, io.micronaut.http.HttpRequest<I> request)  
      protected <I> org.reactivestreams.Publisher<java.net.URI> resolveRequestURI​(io.micronaut.http.HttpRequest<I> request)  
      protected <I> org.reactivestreams.Publisher<java.net.URI> resolveRequestURI​(io.micronaut.http.HttpRequest<I> request, boolean includeContextPath)  
      <I,​O,​E>
      org.reactivestreams.Publisher<O>
      retrieve​(io.micronaut.http.HttpRequest<I> request, io.micronaut.core.type.Argument<O> bodyType, io.micronaut.core.type.Argument<E> errorType)  
      void setMediaTypeCodecRegistry​(io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry)
      Sets the MediaTypeCodecRegistry used by this client.
      io.micronaut.http.client.HttpClient start()  
      io.micronaut.http.client.HttpClient stop()  
      io.micronaut.http.client.BlockingHttpClient toBlocking()  
      • 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.HttpClient

        exchange, exchange, exchange, exchange, exchange, refresh, retrieve, retrieve, retrieve, retrieve
      • Methods inherited from interface io.micronaut.http.client.sse.SseClient

        eventStream, eventStream, eventStream
      • Methods inherited from interface io.micronaut.websocket.WebSocketClient

        connect, connect
    • Field Detail

      • mediaTypeCodecRegistry

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

        protected io.micronaut.core.io.buffer.ByteBufferFactory<io.netty.buffer.ByteBufAllocator,​io.netty.buffer.ByteBuf> byteBufferFactory
    • Constructor Detail

      • DefaultHttpClient

        public DefaultHttpClient​(@Nullable
                                 io.micronaut.http.client.LoadBalancer loadBalancer,
                                 @NonNull
                                 io.micronaut.http.client.HttpClientConfiguration configuration,
                                 @Nullable
                                 java.lang.String contextPath,
                                 @Nullable
                                 java.util.concurrent.ThreadFactory threadFactory,
                                 NettyClientSslBuilder nettyClientSslBuilder,
                                 io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry,
                                 @Nullable
                                 io.micronaut.core.annotation.AnnotationMetadataResolver annotationMetadataResolver,
                                 java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories,
                                 io.micronaut.http.filter.HttpClientFilter... filters)
        Construct a client for the given arguments.
        Parameters:
        loadBalancer - The LoadBalancer to use for selecting servers
        configuration - The HttpClientConfiguration object
        contextPath - The base URI to prepend to request uris
        threadFactory - The thread factory to use for client threads
        nettyClientSslBuilder - The SSL builder
        codecRegistry - The MediaTypeCodecRegistry to use for encoding and decoding objects
        annotationMetadataResolver - The annotation metadata resolver
        invocationInstrumenterFactories - The invocation instrumeter factories to instrument netty handlers execution with
        filters - The filters to use
      • DefaultHttpClient

        public DefaultHttpClient​(@Nullable
                                 io.micronaut.http.client.LoadBalancer loadBalancer,
                                 @Nullable
                                 io.micronaut.http.HttpVersion explicitHttpVersion,
                                 @NonNull
                                 io.micronaut.http.client.HttpClientConfiguration configuration,
                                 @Nullable
                                 java.lang.String contextPath,
                                 @NonNull
                                 io.micronaut.http.filter.HttpClientFilterResolver<io.micronaut.http.client.filter.ClientFilterResolutionContext> filterResolver,
                                 java.util.List<io.micronaut.http.filter.HttpFilterResolver.FilterEntry<io.micronaut.http.filter.HttpClientFilter>> clientFilterEntries,
                                 @Nullable
                                 java.util.concurrent.ThreadFactory threadFactory,
                                 @NonNull
                                 NettyClientSslBuilder nettyClientSslBuilder,
                                 @NonNull
                                 io.micronaut.http.codec.MediaTypeCodecRegistry codecRegistry,
                                 @NonNull
                                 io.micronaut.websocket.context.WebSocketBeanRegistry webSocketBeanRegistry,
                                 @NonNull
                                 io.micronaut.http.bind.RequestBinderRegistry requestBinderRegistry,
                                 @Nullable
                                 io.netty.channel.EventLoopGroup eventLoopGroup,
                                 @NonNull
                                 io.netty.channel.ChannelFactory socketChannelFactory,
                                 java.util.Collection<io.micronaut.http.netty.channel.ChannelPipelineListener> pipelineListeners,
                                 NettyClientCustomizer clientCustomizer,
                                 java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories,
                                 @Nullable
                                 java.lang.String informationalServiceId)
        Construct a client for the given arguments.
        Parameters:
        loadBalancer - The LoadBalancer to use for selecting servers
        explicitHttpVersion - The HTTP version to use. Can be null and defaults to HttpVersion.HTTP_1_1
        configuration - The HttpClientConfiguration object
        contextPath - The base URI to prepend to request uris
        filterResolver - The http client filter resolver
        clientFilterEntries - The client filter entries
        threadFactory - The thread factory to use for client threads
        nettyClientSslBuilder - The SSL builder
        codecRegistry - The MediaTypeCodecRegistry to use for encoding and decoding objects
        webSocketBeanRegistry - The websocket bean registry
        requestBinderRegistry - The request binder registry
        eventLoopGroup - The event loop group to use
        socketChannelFactory - The socket channel factory
        pipelineListeners - The listeners to call for pipeline customization
        clientCustomizer - The pipeline customizer
        invocationInstrumenterFactories - The invocation instrumeter factories to instrument netty handlers execution with
        informationalServiceId - Optional service ID that will be passed to exceptions created by this client
      • DefaultHttpClient

        public DefaultHttpClient​(@Nullable
                                 java.net.URI uri)
        Parameters:
        uri - The URL
      • DefaultHttpClient

        public DefaultHttpClient()
      • DefaultHttpClient

        public DefaultHttpClient​(@Nullable
                                 java.net.URI uri,
                                 @NonNull
                                 io.micronaut.http.client.HttpClientConfiguration configuration)
        Parameters:
        uri - The URI
        configuration - The HttpClientConfiguration object
      • DefaultHttpClient

        public DefaultHttpClient​(@Nullable
                                 io.micronaut.http.client.LoadBalancer loadBalancer,
                                 io.micronaut.http.client.HttpClientConfiguration configuration,
                                 java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories)
        Parameters:
        loadBalancer - The LoadBalancer to use for selecting servers
        configuration - The HttpClientConfiguration object
        invocationInstrumenterFactories - The invocation instrumeter factories to instrument netty handlers execution with
    • Method Detail

      • getConfiguration

        public io.micronaut.http.client.HttpClientConfiguration getConfiguration()
        Returns:
        The configuration used by this client
      • getLog

        public org.slf4j.Logger getLog()
        Returns:
        The client-specific logger name
      • start

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

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

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

        public io.micronaut.http.codec.MediaTypeCodecRegistry getMediaTypeCodecRegistry()
        Returns:
        The MediaTypeCodecRegistry used by this client
      • setMediaTypeCodecRegistry

        public void setMediaTypeCodecRegistry​(io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry)
        Sets the MediaTypeCodecRegistry used by this client.
        Parameters:
        mediaTypeCodecRegistry - The registry to use. Should not be null
      • toBlocking

        public io.micronaut.http.client.BlockingHttpClient toBlocking()
        Specified by:
        toBlocking in interface io.micronaut.http.client.HttpClient
      • eventStream

        public <I> org.reactivestreams.Publisher<io.micronaut.http.sse.Event<io.micronaut.core.io.buffer.ByteBuffer<?>>> eventStream​(@NonNull
                                                                                                                                     io.micronaut.http.HttpRequest<I> request)
        Specified by:
        eventStream in interface io.micronaut.http.client.sse.SseClient
      • eventStream

        public <I,​B> org.reactivestreams.Publisher<io.micronaut.http.sse.Event<B>> eventStream​(@NonNull
                                                                                                     io.micronaut.http.HttpRequest<I> request,
                                                                                                     @NonNull
                                                                                                     io.micronaut.core.type.Argument<B> eventType)
        Specified by:
        eventStream in interface io.micronaut.http.client.sse.SseClient
      • eventStream

        public <I,​B> org.reactivestreams.Publisher<io.micronaut.http.sse.Event<B>> eventStream​(@NonNull
                                                                                                     io.micronaut.http.HttpRequest<I> request,
                                                                                                     @NonNull
                                                                                                     io.micronaut.core.type.Argument<B> eventType,
                                                                                                     @NonNull
                                                                                                     io.micronaut.core.type.Argument<?> errorType)
        Specified by:
        eventStream in interface io.micronaut.http.client.sse.SseClient
      • dataStream

        public <I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream​(@NonNull
                                                                                                       io.micronaut.http.HttpRequest<I> request)
        Specified by:
        dataStream in interface io.micronaut.http.client.StreamingHttpClient
      • dataStream

        public <I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream​(@NonNull
                                                                                                       io.micronaut.http.HttpRequest<I> request,
                                                                                                       @NonNull
                                                                                                       io.micronaut.core.type.Argument<?> errorType)
        Specified by:
        dataStream in interface io.micronaut.http.client.StreamingHttpClient
      • exchangeStream

        public <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream​(@NonNull
                                                                                                                                           io.micronaut.http.HttpRequest<I> request)
        Specified by:
        exchangeStream in interface io.micronaut.http.client.StreamingHttpClient
      • exchangeStream

        public <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream​(@NonNull
                                                                                                                                           io.micronaut.http.HttpRequest<I> request,
                                                                                                                                           @NonNull
                                                                                                                                           io.micronaut.core.type.Argument<?> errorType)
        Specified by:
        exchangeStream in interface io.micronaut.http.client.StreamingHttpClient
      • jsonStream

        public <I,​O> org.reactivestreams.Publisher<O> jsonStream​(@NonNull
                                                                       io.micronaut.http.HttpRequest<I> request,
                                                                       @NonNull
                                                                       io.micronaut.core.type.Argument<O> type)
        Specified by:
        jsonStream in interface io.micronaut.http.client.StreamingHttpClient
      • jsonStream

        public <I,​O> org.reactivestreams.Publisher<O> jsonStream​(@NonNull
                                                                       io.micronaut.http.HttpRequest<I> request,
                                                                       @NonNull
                                                                       io.micronaut.core.type.Argument<O> type,
                                                                       @NonNull
                                                                       io.micronaut.core.type.Argument<?> errorType)
        Specified by:
        jsonStream in interface io.micronaut.http.client.StreamingHttpClient
      • jsonStream

        public <I> org.reactivestreams.Publisher<java.util.Map<java.lang.String,​java.lang.Object>> jsonStream​(@NonNull
                                                                                                                    io.micronaut.http.HttpRequest<I> request)
        Specified by:
        jsonStream in interface io.micronaut.http.client.StreamingHttpClient
      • jsonStream

        public <I,​O> org.reactivestreams.Publisher<O> jsonStream​(@NonNull
                                                                       io.micronaut.http.HttpRequest<I> request,
                                                                       @NonNull
                                                                       java.lang.Class<O> type)
        Specified by:
        jsonStream in interface io.micronaut.http.client.StreamingHttpClient
      • exchange

        public <I,​O,​E> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>> exchange​(@NonNull
                                                                                                             io.micronaut.http.HttpRequest<I> request,
                                                                                                             @NonNull
                                                                                                             io.micronaut.core.type.Argument<O> bodyType,
                                                                                                             @NonNull
                                                                                                             io.micronaut.core.type.Argument<E> errorType)
        Specified by:
        exchange in interface io.micronaut.http.client.HttpClient
      • retrieve

        public <I,​O,​E> org.reactivestreams.Publisher<O> retrieve​(io.micronaut.http.HttpRequest<I> request,
                                                                             io.micronaut.core.type.Argument<O> bodyType,
                                                                             io.micronaut.core.type.Argument<E> errorType)
        Specified by:
        retrieve in interface io.micronaut.http.client.HttpClient
      • connect

        public <T extends java.lang.AutoCloseable> org.reactivestreams.Publisher<T> connect​(java.lang.Class<T> clientEndpointType,
                                                                                            io.micronaut.http.MutableHttpRequest<?> request)
        Specified by:
        connect in interface io.micronaut.websocket.WebSocketClient
      • connect

        public <T extends java.lang.AutoCloseable> org.reactivestreams.Publisher<T> connect​(java.lang.Class<T> clientEndpointType,
                                                                                            java.util.Map<java.lang.String,​java.lang.Object> parameters)
        Specified by:
        connect in interface io.micronaut.websocket.WebSocketClient
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.HttpClient>
        Specified by:
        close in interface io.micronaut.websocket.WebSocketClient
      • proxy

        public org.reactivestreams.Publisher<io.micronaut.http.MutableHttpResponse<?>> proxy​(@NonNull
                                                                                             io.micronaut.http.HttpRequest<?> request)
        Specified by:
        proxy in interface io.micronaut.http.client.ProxyHttpClient
      • proxy

        public org.reactivestreams.Publisher<io.micronaut.http.MutableHttpResponse<?>> proxy​(@NonNull
                                                                                             io.micronaut.http.HttpRequest<?> request,
                                                                                             @NonNull
                                                                                             io.micronaut.http.client.ProxyRequestOptions options)
        Specified by:
        proxy in interface io.micronaut.http.client.ProxyHttpClient
      • resolveRequestURI

        protected <I> org.reactivestreams.Publisher<java.net.URI> resolveRequestURI​(io.micronaut.http.HttpRequest<I> request)
        Type Parameters:
        I - The input type
        Parameters:
        request - The request
        Returns:
        A Publisher with the resolved URI
      • resolveRequestURI

        protected <I> org.reactivestreams.Publisher<java.net.URI> resolveRequestURI​(io.micronaut.http.HttpRequest<I> request,
                                                                                    boolean includeContextPath)
        Type Parameters:
        I - The input type
        Parameters:
        request - The request
        includeContextPath - Whether to prepend the client context path
        Returns:
        A Publisher with the resolved URI
      • resolveRedirectURI

        protected <I> org.reactivestreams.Publisher<java.net.URI> resolveRedirectURI​(io.micronaut.http.HttpRequest<?> parentRequest,
                                                                                     io.micronaut.http.HttpRequest<I> request)
        Type Parameters:
        I - The input type
        Parameters:
        parentRequest - The parent request
        request - The redirect location request
        Returns:
        A Publisher with the resolved URI
      • prependContextPath

        protected java.net.URI prependContextPath​(java.net.URI requestURI)
        Parameters:
        requestURI - The request URI
        Returns:
        A URI that is prepended with the contextPath, if set
      • getLoadBalancerDiscriminator

        protected java.lang.Object getLoadBalancerDiscriminator()
        Returns:
        The discriminator to use when selecting a server for the purposes of load balancing (defaults to null)
      • buildNettyRequest

        protected io.micronaut.http.client.netty.DefaultHttpClient.NettyRequestWriter buildNettyRequest​(io.micronaut.http.MutableHttpRequest request,
                                                                                                        java.net.URI requestURI,
                                                                                                        io.micronaut.http.MediaType requestContentType,
                                                                                                        boolean permitsBody,
                                                                                                        @Nullable
                                                                                                        io.micronaut.core.type.Argument<?> bodyType,
                                                                                                        java.util.function.Consumer<? super java.lang.Throwable> onError)
                                                                                                 throws io.netty.handler.codec.http.multipart.HttpPostRequestEncoder.ErrorDataEncoderException
        Parameters:
        request - The request
        requestURI - The URI of the request
        requestContentType - The request content type
        permitsBody - Whether permits body
        bodyType - The body type
        onError - Called when the body publisher encounters an error
        Returns:
        A DefaultHttpClient.NettyRequestWriter
        Throws:
        io.netty.handler.codec.http.multipart.HttpPostRequestEncoder.ErrorDataEncoderException - if there is an encoder exception