@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
HttpClient interface based on Netty.| Modifier and Type | Class and Description |
|---|---|
protected class |
DefaultHttpClient.HttpClientInitializer
Initializes the HTTP client channel.
|
protected class |
DefaultHttpClient.NettyRequestWriter
A Netty request writer.
|
| Modifier and Type | Field and Description |
|---|---|
protected io.netty.bootstrap.Bootstrap |
bootstrap |
protected io.micronaut.core.io.buffer.ByteBufferFactory<io.netty.buffer.ByteBufAllocator,io.netty.buffer.ByteBuf> |
byteBufferFactory |
protected io.netty.channel.EventLoopGroup |
group |
protected io.micronaut.http.codec.MediaTypeCodecRegistry |
mediaTypeCodecRegistry |
| Constructor and Description |
|---|
DefaultHttpClient() |
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.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.HttpVersion httpVersion,
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,
java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories)
Construct a client for the given arguments.
|
DefaultHttpClient(java.net.URI uri) |
DefaultHttpClient(java.net.URI uri,
io.micronaut.http.client.HttpClientConfiguration configuration) |
| Modifier and Type | Method and Description |
|---|---|
protected <I,O> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>> |
applyFilterToResponsePublisher(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
java.net.URI requestURI,
java.util.concurrent.atomic.AtomicReference<io.micronaut.http.HttpRequest> requestWrapper,
org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>> responsePublisher) |
protected <I> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>>> |
buildDataStreamPublisher(io.micronaut.http.HttpRequest<I> request)
Deprecated.
|
protected <I> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>>> |
buildDataStreamPublisher(io.micronaut.http.HttpRequest<I> request,
io.micronaut.core.type.Argument<?> errorType) |
protected <I,O,E> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<? extends io.micronaut.http.HttpResponse<O>>> |
buildExchangePublisher(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
io.micronaut.core.type.Argument<O> bodyType,
io.micronaut.core.type.Argument<E> errorType) |
protected <I> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>>> |
buildExchangeStreamPublisher(io.micronaut.http.HttpRequest<I> request,
io.micronaut.core.type.Argument<?> errorType) |
protected <I,O> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<O>> |
buildJsonStreamPublisher(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
io.micronaut.core.type.Argument<O> type,
io.micronaut.core.type.Argument<?> errorType) |
protected 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,
boolean closeChannelAfterWrite) |
protected io.netty.handler.ssl.SslContext |
buildSslContext(java.net.URI uriObject)
Builds an
SslContext for the given URI if necessary. |
protected <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<java.lang.Object>> |
buildStreamExchange(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
java.net.URI requestURI)
Deprecated.
|
protected <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<java.lang.Object>> |
buildStreamExchange(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
java.net.URI requestURI,
io.micronaut.core.type.Argument<?> errorType) |
void |
close() |
protected void |
closeChannelAsync(io.netty.channel.Channel channel) |
protected void |
configureHttp2ClearText(DefaultHttpClient.HttpClientInitializer httpClientInitializer,
io.netty.channel.socket.SocketChannel ch,
io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler connectionHandler)
Configures HTTP/2 handling for plaintext (non-SSL) connections.
|
protected void |
configureHttp2Ssl(DefaultHttpClient.HttpClientInitializer httpClientInitializer,
io.netty.channel.socket.SocketChannel ch,
io.netty.handler.ssl.SslContext sslCtx,
java.lang.String host,
int port,
io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler connectionHandler)
Configures HTTP/2 for the channel when SSL is enabled.
|
protected void |
configureProxy(io.netty.channel.ChannelPipeline pipeline,
java.net.Proxy.Type proxyType,
java.net.SocketAddress proxyAddress)
Configures the HTTP proxy for the pipeline.
|
protected void |
configureProxy(io.netty.channel.ChannelPipeline pipeline,
java.net.Proxy proxy)
Configures the HTTP proxy for the pipeline.
|
<T extends java.lang.AutoCloseable> |
connect(java.lang.Class<T> clientEndpointType,
java.util.Map<java.lang.String,java.lang.Object> parameters) |
<T extends java.lang.AutoCloseable> |
connect(java.lang.Class<T> clientEndpointType,
io.micronaut.http.MutableHttpRequest<?> request) |
protected io.netty.channel.nio.NioEventLoopGroup |
createEventLoopGroup(io.micronaut.http.client.HttpClientConfiguration configuration,
java.util.concurrent.ThreadFactory threadFactory)
Creates the
NioEventLoopGroup for this client. |
<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) |
protected io.netty.channel.ChannelFuture |
doConnect(io.netty.bootstrap.Bootstrap bootstrap,
java.lang.String host,
int port)
Creates an initial connection with the given bootstrap and remote host.
|
protected io.netty.channel.ChannelFuture |
doConnect(io.micronaut.http.HttpRequest<?> request,
java.lang.String host,
int port,
io.netty.handler.ssl.SslContext sslCtx,
boolean isStream,
java.util.function.Consumer<io.netty.channel.ChannelHandlerContext> contextConsumer)
Creates an initial connection to the given remote host.
|
protected io.netty.channel.ChannelFuture |
doConnect(io.micronaut.http.HttpRequest<?> request,
java.net.URI uri,
io.netty.handler.ssl.SslContext sslCtx,
boolean isStream,
java.util.function.Consumer<io.netty.channel.ChannelHandlerContext> contextConsumer)
Creates an initial connection to the given remote host.
|
<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 io.netty.handler.codec.http2.HttpToHttp2ConnectionHandlerBuilder |
newHttp2ConnectionHandlerBuilder(io.netty.handler.codec.http2.Http2Connection connection,
io.micronaut.http.client.HttpClientConfiguration configuration,
boolean stream)
Creates a new
HttpToHttp2ConnectionHandlerBuilder for the given HTTP/2 connection object and config. |
protected java.net.URI |
prependContextPath(java.net.URI requestURI) |
org.reactivestreams.Publisher<io.micronaut.http.MutableHttpResponse<?>> |
proxy(io.micronaut.http.HttpRequest<?> request) |
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) |
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() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitconnect, connect, create, create, create, createexchange, exchange, exchange, exchange, exchange, refresh, retrieve, retrieve, retrieve, retrieve, retrieveprotected final io.netty.bootstrap.Bootstrap bootstrap
protected io.netty.channel.EventLoopGroup group
protected io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry
protected io.micronaut.core.io.buffer.ByteBufferFactory<io.netty.buffer.ByteBufAllocator,io.netty.buffer.ByteBuf> byteBufferFactory
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)
loadBalancer - The LoadBalancer to use for selecting serversconfiguration - The HttpClientConfiguration objectcontextPath - The base URI to prepend to request uristhreadFactory - The thread factory to use for client threadsnettyClientSslBuilder - The SSL buildercodecRegistry - The MediaTypeCodecRegistry to use for encoding and decoding objectsannotationMetadataResolver - The annotation metadata resolverinvocationInstrumenterFactories - The invocation instrumeter factories to instrument netty handlers execution withfilters - The filters to usepublic DefaultHttpClient(@Nullable
io.micronaut.http.client.LoadBalancer loadBalancer,
@Nullable
io.micronaut.http.HttpVersion httpVersion,
@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,
java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories)
loadBalancer - The LoadBalancer to use for selecting servershttpVersion - The HTTP version to use. Can be null and defaults to HttpVersion.HTTP_1_1configuration - The HttpClientConfiguration objectcontextPath - The base URI to prepend to request urisfilterResolver - The http client filter resolverclientFilterEntries - The client filter entriesthreadFactory - The thread factory to use for client threadsnettyClientSslBuilder - The SSL buildercodecRegistry - The MediaTypeCodecRegistry to use for encoding and decoding objectswebSocketBeanRegistry - The websocket bean registryrequestBinderRegistry - The request binder registryeventLoopGroup - The event loop group to usesocketChannelFactory - The socket channel factorypipelineListeners - The listeners to call for pipeline customizationinvocationInstrumenterFactories - The invocation instrumeter factories to instrument netty handlers execution withpublic DefaultHttpClient(@Nullable
java.net.URI uri)
uri - The URLpublic DefaultHttpClient()
public DefaultHttpClient(@Nullable
java.net.URI uri,
@NonNull
io.micronaut.http.client.HttpClientConfiguration configuration)
uri - The URIconfiguration - The HttpClientConfiguration objectpublic DefaultHttpClient(@Nullable
io.micronaut.http.client.LoadBalancer loadBalancer,
io.micronaut.http.client.HttpClientConfiguration configuration,
java.util.List<io.micronaut.scheduling.instrument.InvocationInstrumenterFactory> invocationInstrumenterFactories)
loadBalancer - The LoadBalancer to use for selecting serversconfiguration - The HttpClientConfiguration objectinvocationInstrumenterFactories - The invocation instrumeter factories to instrument netty handlers execution withpublic io.micronaut.http.client.HttpClientConfiguration getConfiguration()
public org.slf4j.Logger getLog()
public io.micronaut.http.client.HttpClient start()
start in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.HttpClient>public boolean isRunning()
isRunning in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.HttpClient>public io.micronaut.http.client.HttpClient stop()
stop in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.HttpClient>public io.micronaut.http.codec.MediaTypeCodecRegistry getMediaTypeCodecRegistry()
MediaTypeCodecRegistry used by this clientpublic void setMediaTypeCodecRegistry(io.micronaut.http.codec.MediaTypeCodecRegistry mediaTypeCodecRegistry)
MediaTypeCodecRegistry used by this client.mediaTypeCodecRegistry - The registry to use. Should not be nullpublic io.micronaut.http.client.BlockingHttpClient toBlocking()
toBlocking in interface io.micronaut.http.client.HttpClientpublic <I> org.reactivestreams.Publisher<io.micronaut.http.sse.Event<io.micronaut.core.io.buffer.ByteBuffer<?>>> eventStream(@NonNull
io.micronaut.http.HttpRequest<I> request)
eventStream in interface io.micronaut.http.client.sse.SseClientpublic <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)
eventStream in interface io.micronaut.http.client.sse.SseClientpublic <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)
eventStream in interface io.micronaut.http.client.sse.SseClientpublic <I> org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>> dataStream(@NonNull
io.micronaut.http.HttpRequest<I> request)
dataStream in interface io.micronaut.http.client.StreamingHttpClientpublic <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)
dataStream in interface io.micronaut.http.client.StreamingHttpClientpublic <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>> exchangeStream(@NonNull
io.micronaut.http.HttpRequest<I> request)
exchangeStream in interface io.micronaut.http.client.StreamingHttpClientpublic <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)
exchangeStream in interface io.micronaut.http.client.StreamingHttpClientpublic <I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull
io.micronaut.http.HttpRequest<I> request,
@NonNull
io.micronaut.core.type.Argument<O> type)
jsonStream in interface io.micronaut.http.client.StreamingHttpClientpublic <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)
jsonStream in interface io.micronaut.http.client.StreamingHttpClientpublic <I> org.reactivestreams.Publisher<java.util.Map<java.lang.String,java.lang.Object>> jsonStream(@NonNull
io.micronaut.http.HttpRequest<I> request)
jsonStream in interface io.micronaut.http.client.StreamingHttpClientpublic <I,O> org.reactivestreams.Publisher<O> jsonStream(@NonNull
io.micronaut.http.HttpRequest<I> request,
@NonNull
java.lang.Class<O> type)
jsonStream in interface io.micronaut.http.client.StreamingHttpClientpublic <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)
exchange in interface io.micronaut.http.client.HttpClientpublic <T extends java.lang.AutoCloseable> org.reactivestreams.Publisher<T> connect(java.lang.Class<T> clientEndpointType,
io.micronaut.http.MutableHttpRequest<?> request)
connect in interface io.micronaut.websocket.WebSocketClientpublic <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)
connect in interface io.micronaut.websocket.WebSocketClientpublic void close()
close in interface io.micronaut.context.LifeCycle<io.micronaut.http.client.HttpClient>close in interface io.micronaut.websocket.WebSocketClientclose in interface java.io.Closeableclose in interface java.lang.AutoCloseableprotected <I> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<io.micronaut.core.io.buffer.ByteBuffer<?>>>> buildExchangeStreamPublisher(@NonNull
io.micronaut.http.HttpRequest<I> request,
@NonNull
io.micronaut.core.type.Argument<?> errorType)
I - The input typerequest - The requesterrorType - The error typeFunctionprotected <I,O> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<O>> buildJsonStreamPublisher(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
io.micronaut.core.type.Argument<O> type,
io.micronaut.core.type.Argument<?> errorType)
I - The input typeO - The output typeparentRequest - The parent requestrequest - The requesttype - The typeerrorType - The error typeFunction@Deprecated protected <I> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>>> buildDataStreamPublisher(io.micronaut.http.HttpRequest<I> request)
buildDataStreamPublisher(io.micronaut.http.HttpRequest, Argument) insteadI - The input typerequest - The requestFunctionprotected <I> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<io.micronaut.core.io.buffer.ByteBuffer<?>>> buildDataStreamPublisher(@NonNull
io.micronaut.http.HttpRequest<I> request,
@NonNull
io.micronaut.core.type.Argument<?> errorType)
I - The input typerequest - The requesterrorType - The error typeFunction@Deprecated
protected <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<java.lang.Object>> buildStreamExchange(@Nullable
io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
java.net.URI requestURI)
buildStreamExchange(io.micronaut.http.HttpRequest, io.micronaut.http.HttpRequest, URI, Argument) instead.I - The input typeparentRequest - The parent requestrequest - The requestrequestURI - The request URIFluxprotected <I> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<java.lang.Object>> buildStreamExchange(@Nullable
io.micronaut.http.HttpRequest<?> parentRequest,
@NonNull
io.micronaut.http.HttpRequest<I> request,
@NonNull
java.net.URI requestURI,
@NonNull
io.micronaut.core.type.Argument<?> errorType)
I - The input typeparentRequest - The parent requestrequest - The requestrequestURI - The request URIerrorType - The error typeFluxprotected <I,O,E> java.util.function.Function<java.net.URI,org.reactivestreams.Publisher<? extends io.micronaut.http.HttpResponse<O>>> buildExchangePublisher(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
@NonNull
io.micronaut.core.type.Argument<O> bodyType,
@NonNull
io.micronaut.core.type.Argument<E> errorType)
I - The input typeO - The output typeE - The error typeparentRequest - The parent requestrequest - The requestbodyType - The body typeerrorType - The error typeFunctionprotected void closeChannelAsync(io.netty.channel.Channel channel)
channel - The channel to close asynchronouslyprotected <I> org.reactivestreams.Publisher<java.net.URI> resolveRequestURI(io.micronaut.http.HttpRequest<I> request)
I - The input typerequest - The requestPublisher with the resolved URIprotected <I> org.reactivestreams.Publisher<java.net.URI> resolveRequestURI(io.micronaut.http.HttpRequest<I> request,
boolean includeContextPath)
I - The input typerequest - The requestincludeContextPath - Whether to prepend the client context pathPublisher with the resolved URIprotected <I> org.reactivestreams.Publisher<java.net.URI> resolveRedirectURI(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request)
I - The input typeparentRequest - The parent requestrequest - The redirect location requestPublisher with the resolved URIprotected java.net.URI prependContextPath(java.net.URI requestURI)
requestURI - The request URIprotected java.lang.Object getLoadBalancerDiscriminator()
protected io.netty.channel.ChannelFuture doConnect(io.micronaut.http.HttpRequest<?> request,
java.net.URI uri,
@Nullable
io.netty.handler.ssl.SslContext sslCtx,
boolean isStream,
java.util.function.Consumer<io.netty.channel.ChannelHandlerContext> contextConsumer)
throws io.micronaut.http.client.exceptions.HttpClientException
request - The requesturi - The URI to connect tosslCtx - The SslContext instanceisStream - Is the connection a stream connectioncontextConsumer - The logic to run once the channel is configured correctlyio.micronaut.http.client.exceptions.HttpClientException - If the URI is invalidprotected io.netty.channel.ChannelFuture doConnect(io.micronaut.http.HttpRequest<?> request,
java.lang.String host,
int port,
@Nullable
io.netty.handler.ssl.SslContext sslCtx,
boolean isStream,
java.util.function.Consumer<io.netty.channel.ChannelHandlerContext> contextConsumer)
request - The requesthost - The hostport - The portsslCtx - The SslContext instanceisStream - Is the connection a stream connectioncontextConsumer - The logic to run once the channel is configured correctlyprotected io.netty.channel.nio.NioEventLoopGroup createEventLoopGroup(io.micronaut.http.client.HttpClientConfiguration configuration,
java.util.concurrent.ThreadFactory threadFactory)
NioEventLoopGroup for this client.configuration - The configurationthreadFactory - The thread factoryprotected io.netty.channel.ChannelFuture doConnect(io.netty.bootstrap.Bootstrap bootstrap,
java.lang.String host,
int port)
bootstrap - The bootstrap instancehost - The hostport - The portprotected io.netty.handler.ssl.SslContext buildSslContext(java.net.URI uriObject)
SslContext for the given URI if necessary.uriObject - The URISslContext instanceprotected void configureProxy(io.netty.channel.ChannelPipeline pipeline,
java.net.Proxy proxy)
pipeline - The pipelineproxy - The proxyprotected void configureProxy(io.netty.channel.ChannelPipeline pipeline,
java.net.Proxy.Type proxyType,
java.net.SocketAddress proxyAddress)
pipeline - The pipelineproxyType - The proxy typeproxyAddress - The proxy addressprotected <I,O> org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>> applyFilterToResponsePublisher(io.micronaut.http.HttpRequest<?> parentRequest,
io.micronaut.http.HttpRequest<I> request,
java.net.URI requestURI,
java.util.concurrent.atomic.AtomicReference<io.micronaut.http.HttpRequest> requestWrapper,
org.reactivestreams.Publisher<io.micronaut.http.HttpResponse<O>> responsePublisher)
I - The input typeO - The output typeparentRequest - The parent requestrequest - The requestrequestURI - The URI of the requestrequestWrapper - The request wrapperresponsePublisher - The response publisherPublisher for the responseprotected 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, boolean closeChannelAfterWrite) throws io.netty.handler.codec.http.multipart.HttpPostRequestEncoder.ErrorDataEncoderException
request - The requestrequestURI - The URI of the requestrequestContentType - The request content typepermitsBody - Whether permits bodybodyType - The body typeonError - Called when the body publisher encounters an errorcloseChannelAfterWrite - Whether to close the channel. For stream requests we don't close the channel until disposed of.DefaultHttpClient.NettyRequestWriterHttpPostRequestEncoder.ErrorDataEncoderException - if there is an encoder exceptionprotected void configureHttp2Ssl(DefaultHttpClient.HttpClientInitializer httpClientInitializer, @NonNull io.netty.channel.socket.SocketChannel ch, @NonNull io.netty.handler.ssl.SslContext sslCtx, java.lang.String host, int port, io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler connectionHandler)
httpClientInitializer - The client initializerch - The channelsslCtx - The SSL contexthost - The hostport - The portconnectionHandler - The connection handlerprotected void configureHttp2ClearText(DefaultHttpClient.HttpClientInitializer httpClientInitializer, @NonNull io.netty.channel.socket.SocketChannel ch, @NonNull io.netty.handler.codec.http2.HttpToHttp2ConnectionHandler connectionHandler)
httpClientInitializer - The client initializerch - The channelconnectionHandler - The connection handler@NonNull
protected io.netty.handler.codec.http2.HttpToHttp2ConnectionHandlerBuilder newHttp2ConnectionHandlerBuilder(@NonNull
io.netty.handler.codec.http2.Http2Connection connection,
@NonNull
io.micronaut.http.client.HttpClientConfiguration configuration,
boolean stream)
HttpToHttp2ConnectionHandlerBuilder for the given HTTP/2 connection object and config.connection - The connectionconfiguration - The configurationstream - Whether this is a stream requestHttpToHttp2ConnectionHandlerBuilderpublic org.reactivestreams.Publisher<io.micronaut.http.MutableHttpResponse<?>> proxy(@NonNull
io.micronaut.http.HttpRequest<?> request)
proxy in interface io.micronaut.http.client.ProxyHttpClient