Package com.linecorp.armeria.client
Interface RequestOptionsSetters
- All Known Subinterfaces:
RequestPreparationSetters
- All Known Implementing Classes:
BlockingWebClientRequestPreparation
,FutureTransformingRequestPreparation
,RequestOptionsBuilder
,RestClientPreparation
,TransformingRequestPreparation
,WebClientRequestPreparation
Provides the setters for building
RequestOptions
.-
Method Summary
Modifier and TypeMethodDescriptionattr
(AttributeKey<V> key, V value) Associates the specified value with the givenAttributeKey
in this request.exchangeType
(ExchangeType exchangeType) maxResponseLength
(long maxResponseLength) Sets the maximum allowed length of a server response in bytes.requestAutoAbortDelay
(Duration delay) Sets the amount of time to wait before aborting anHttpRequest
when its correspondingHttpResponse
is complete.requestAutoAbortDelayMillis
(long delayMillis) Sets the amount of time in millis to wait before aborting anHttpRequest
when its correspondingHttpResponse
is complete.responseTimeout
(Duration responseTimeout) responseTimeoutMillis
(long responseTimeoutMillis) writeTimeout
(Duration writeTimeout) Sets the amount of time allowed until the initial write attempt of the currentRequest
succeeds.writeTimeoutMillis
(long writeTimeoutMillis) Sets the amount of time allowed until the initial write attempt of the currentRequest
succeeds.
-
Method Details
-
responseTimeout
Schedules the response timeout that is triggered when theResponse
is not fully received within the specifiedDuration
since theResponse
started orRequest
was fully sent.Duration.ZERO
disables the limit. -
responseTimeoutMillis
-
writeTimeout
Sets the amount of time allowed until the initial write attempt of the currentRequest
succeeds.Duration.ZERO
disables the limit. -
writeTimeoutMillis
Sets the amount of time allowed until the initial write attempt of the currentRequest
succeeds.0
disables the limit. -
maxResponseLength
Sets the maximum allowed length of a server response in bytes.0
disables the limit. -
requestAutoAbortDelay
Sets the amount of time to wait before aborting anHttpRequest
when its correspondingHttpResponse
is complete. This may be useful when you want to send additional data even after the response is complete. SpecifyDuration.ZERO
to abort theHttpRequest
immediately. Any negative value will not abort the request automatically. There is no delay by default. -
requestAutoAbortDelayMillis
Sets the amount of time in millis to wait before aborting anHttpRequest
when its correspondingHttpResponse
is complete. This may be useful when you want to send additional data even after the response is complete. Specify0
to abort theHttpRequest
immediately. Any negative value will not abort the request automatically. There is no delay by default. -
attr
Associates the specified value with the givenAttributeKey
in this request. If this context previously contained a mapping for theAttributeKey
, the old value is replaced by the specified value. -
exchangeType
Sets theExchangeType
that determines whether to stream anHttpRequest
orHttpResponse
. Note that anHttpRequest
will be aggregated before being written ifExchangeType.UNARY
orExchangeType.RESPONSE_STREAMING
is set. If unspecified, theClient
s try to infer a properExchangeType
depending on the content type of a request and a response. Here are examples:WebClient client = WebClient.of("https://armeria.dev"); try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) { client.prepare() .post("/api/v1/items") .contentJson(new Item(...)) // A non-streaming request type. .asString() // A non-streaming response type. .execute(); assert captor.get().exchangeType() == ExchangeType.UNARY; } try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) { client.get("/api/v1/items") // A non-streaming request type. .aggregate(); // A return type is not specified; Assuming that response streaming // is enabled. assert captor.get().exchangeType() == ExchangeType.RESPONSE_STREAMING; } try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) { client.prepare() .post("/api/v1/items") .content(MediaType.JSON_LINES, StreamMessage.of(...)) // A streaming request type. .asFile(Path.get("/path/to/destination")) // A streaming response type. .execute(); assert captor.get().exchangeType() == ExchangeType.BIDI_STREAMING; }
Since a request and a response of
BlockingWebClient
are fully aggregated,ExchangeType.UNARY
is only supported.try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) { AggregatedHttpResponse response = client.blocking().get("/api/v1/items"); assert captor.get().exchangeType() == ExchangeType.UNARY; }
gRPC clients
An
ExchangeType
is automatically inferred from theio.grpc.MethodDescriptor.MethodType
.try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) { Response response = grpcClient.unaryCall(...); assert captor.get().exchangeType() == ExchangeType.UNARY; }
Thrift clients
Thrift protocols do not support streaming.
ExchangeType.UNARY
is only supported.
-