- All Superinterfaces:
Cloneable
- All Known Implementing Classes:
RealCall
A call is a request that has been prepared for execution. A call can be canceled. As this object represents a single
request/response pair (stream), it cannot be executed twice.
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel()Cancels the request, if possible.clone()Creates a new, identical call to this one which can be enqueued or executed even if this call has already been.voidSchedules the request to be executed at some point in the future.execute()Invokes the request immediately, and blocks until the response can be processed or is in error.booleanReturns true if this call has been canceled.booleanrequest()Returns the original request that initiated this call.org.miaixz.bus.core.io.timout.Timeouttimeout()Returns a timeout that spans the entire call: resolving DNS, connecting, writing the request body, server processing, and reading the response body.
-
Method Details
-
request
Request request()Returns the original request that initiated this call.- Returns:
- The original request.
-
execute
Invokes the request immediately, and blocks until the response can be processed or is in error.The caller can read the response body with the
Response.bodymethod. To avoid resource leaks, the caller must close the response body or the response.Note that transport-layer success (receiving a HTTP response code, headers and body) does not necessarily indicate application-layer success:
responsemay still indicate an unhappy HTTP response code like 404 or 500.- Returns:
- The response to the request.
- Throws:
IOException- if the request could not be executed due to cancellation, a connectivity problem or timeout. Because networks can fail during an exchange, it is possible that the remote server accepted the request before the failure.IllegalStateException- when the call has already been executed.
-
enqueue
Schedules the request to be executed at some point in the future.The
dispatcherdefines when the request will run: usually immediately unless there are several other requests currently being executed.This client will later call back
responseCallbackwith either an HTTP response or a failure exception.- Parameters:
callback- The asynchronous callback.- Throws:
IllegalStateException- when the call has already been executed.
-
cancel
void cancel()Cancels the request, if possible. Requests that are already complete cannot be canceled. -
isExecuted
boolean isExecuted()Returns true if this call has been either executed or enqueued. It is an error to execute a call more than once.- Returns:
- true if this call has been executed or enqueued.
-
isCanceled
boolean isCanceled()Returns true if this call has been canceled.- Returns:
- true if this call has been canceled.
-
timeout
org.miaixz.bus.core.io.timout.Timeout timeout()Returns a timeout that spans the entire call: resolving DNS, connecting, writing the request body, server processing, and reading the response body. If the call requires redirects or retries all must complete within one timeout period.Configure the client's default timeout using
Httpd.Builder.callTimeout.- Returns:
- The timeout for the entire call.
-
clone
NewCall clone()Creates a new, identical call to this one which can be enqueued or executed even if this call has already been.- Returns:
- A new call that is a clone of this call.
-