Request.BeginListener, Request.CommitListener, Request.ContentListener, Request.FailureListener, Request.HeadersListener, Request.Listener, Request.QueuedListener, Request.RequestListener, Request.SuccessListener
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> |
aborted |
private java.util.Map<java.lang.String,java.lang.Object> |
attributes |
private HttpClient |
client |
private ContentProvider |
content |
private HttpConversation |
conversation |
private java.util.List<java.net.HttpCookie> |
cookies |
private boolean |
followRedirects |
private HttpFields |
headers |
private java.lang.String |
host |
private long |
idleTimeout |
private java.lang.String |
method |
private static java.net.URI |
NULL_URI |
private Fields |
params |
private java.lang.String |
path |
private int |
port |
private java.util.function.BiFunction<Request,Request,Response.CompleteListener> |
pushListener |
private java.lang.String |
query |
private java.util.List<Request.RequestListener> |
requestListeners |
private java.util.List<Response.ResponseListener> |
responseListeners |
private java.lang.String |
scheme |
private long |
timeout |
private long |
timeoutAt |
private java.util.function.Supplier<HttpFields> |
trailers |
private java.net.URI |
uri |
private HttpVersion |
version |
Modifier | Constructor and Description |
---|---|
protected |
HttpRequest(HttpClient client,
HttpConversation conversation,
java.net.URI uri) |
Modifier and Type | Method and Description |
---|---|
boolean |
abort(java.lang.Throwable cause)
Attempts to abort the send of this request.
|
Request |
accept(java.lang.String... accepts) |
Request |
agent(java.lang.String agent) |
Request |
attribute(java.lang.String name,
java.lang.Object value) |
private java.lang.String |
buildQuery() |
private java.net.URI |
buildURI(boolean withQuery) |
Request |
content(ContentProvider content) |
Request |
content(ContentProvider content,
java.lang.String contentType) |
Request |
cookie(java.net.HttpCookie cookie) |
private void |
extractParams(java.lang.String query) |
Request |
file(java.nio.file.Path file)
Shortcut method to specify a file as a content for this request, with the default content type of
"application/octect-stream".
|
Request |
file(java.nio.file.Path file,
java.lang.String contentType)
Shortcut method to specify a file as a content for this request, with the given content type.
|
Request |
followRedirects(boolean follow) |
java.lang.Throwable |
getAbortCause() |
java.lang.String |
getAgent() |
java.util.Map<java.lang.String,java.lang.Object> |
getAttributes() |
ContentProvider |
getContent() |
HttpConversation |
getConversation() |
java.util.List<java.net.HttpCookie> |
getCookies() |
HttpFields |
getHeaders() |
java.lang.String |
getHost() |
long |
getIdleTimeout() |
java.lang.String |
getMethod() |
Fields |
getParams() |
java.lang.String |
getPath() |
int |
getPort() |
java.util.function.BiFunction<Request,Request,Response.CompleteListener> |
getPushListener() |
java.lang.String |
getQuery() |
<T extends Request.RequestListener> |
getRequestListeners(java.lang.Class<T> type) |
protected java.util.List<Response.ResponseListener> |
getResponseListeners() |
java.lang.String |
getScheme() |
long |
getTimeout() |
(package private) long |
getTimeoutAt() |
java.util.function.Supplier<HttpFields> |
getTrailers() |
java.net.URI |
getURI() |
HttpVersion |
getVersion() |
Request |
header(HttpHeader header,
java.lang.String value)
Adds the given
value to the specified header . |
Request |
header(java.lang.String name,
java.lang.String value) |
Request |
idleTimeout(long timeout,
java.util.concurrent.TimeUnit unit) |
boolean |
isFollowRedirects() |
Request |
listener(Request.Listener listener) |
Request |
method(HttpMethod method) |
Request |
method(java.lang.String method) |
private java.net.URI |
newURI(java.lang.String uri) |
Request |
onComplete(Response.CompleteListener listener) |
Request |
onRequestBegin(Request.BeginListener listener) |
Request |
onRequestCommit(Request.CommitListener listener) |
Request |
onRequestContent(Request.ContentListener listener) |
Request |
onRequestFailure(Request.FailureListener listener) |
Request |
onRequestHeaders(Request.HeadersListener listener) |
Request |
onRequestQueued(Request.QueuedListener listener) |
Request |
onRequestSuccess(Request.SuccessListener listener) |
Request |
onResponseBegin(Response.BeginListener listener) |
Request |
onResponseContent(Response.ContentListener listener) |
Request |
onResponseContentAsync(Response.AsyncContentListener listener) |
Request |
onResponseContentDemanded(Response.DemandedContentListener listener) |
Request |
onResponseFailure(Response.FailureListener listener) |
Request |
onResponseHeader(Response.HeaderListener listener) |
Request |
onResponseHeaders(Response.HeadersListener listener) |
Request |
onResponseSuccess(Response.SuccessListener listener) |
Request |
param(java.lang.String name,
java.lang.String value)
Adds a query parameter with the given name and value.
|
private Request |
param(java.lang.String name,
java.lang.String value,
boolean fromQuery) |
Request |
path(java.lang.String path)
Specifies the path - and possibly the query - of this request.
|
Request |
pushListener(java.util.function.BiFunction<Request,Request,Response.CompleteListener> listener)
Sets a listener for pushed resources.
|
private Request |
requestListener(Request.RequestListener listener) |
Request |
scheme(java.lang.String scheme) |
ContentResponse |
send()
Sends this request and returns the response.
|
private void |
send(HttpRequest request,
Response.CompleteListener listener) |
void |
send(Response.CompleteListener listener)
Sends this request and asynchronously notifies the given listener for response events.
|
(package private) void |
sent() |
Request |
timeout(long timeout,
java.util.concurrent.TimeUnit unit) |
java.lang.String |
toString() |
HttpRequest |
trailers(java.util.function.Supplier<HttpFields> trailers) |
private java.lang.String |
urlDecode(java.lang.String value) |
private java.lang.String |
urlEncode(java.lang.String value) |
Request |
version(HttpVersion version) |
private static final java.net.URI NULL_URI
private final HttpFields headers
private final Fields params
private final java.util.List<Response.ResponseListener> responseListeners
private final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> aborted
private final HttpClient client
private final HttpConversation conversation
private final java.lang.String host
private final int port
private java.net.URI uri
private java.lang.String scheme
private java.lang.String path
private java.lang.String query
private java.lang.String method
private HttpVersion version
private long idleTimeout
private long timeout
private long timeoutAt
private ContentProvider content
private boolean followRedirects
private java.util.List<java.net.HttpCookie> cookies
private java.util.Map<java.lang.String,java.lang.Object> attributes
private java.util.List<Request.RequestListener> requestListeners
private java.util.function.BiFunction<Request,Request,Response.CompleteListener> pushListener
private java.util.function.Supplier<HttpFields> trailers
protected HttpRequest(HttpClient client, HttpConversation conversation, java.net.URI uri)
public HttpConversation getConversation()
public java.lang.String getScheme()
public Request scheme(java.lang.String scheme)
public java.lang.String getHost()
public int getPort()
public java.lang.String getMethod()
public Request method(HttpMethod method)
public Request method(java.lang.String method)
public java.lang.String getPath()
getPath
in interface Request
Request.getQuery()
public Request path(java.lang.String path)
Request
UTF-8 URL encoded
.
For example, if the value for parameter "currency" is the euro symbol € then the
query string for this parameter must be "currency=%E2%82%AC".
For transparent encoding of parameter values, use Request.param(String, String)
.public java.lang.String getQuery()
getQuery
in interface Request
Request.getPath()
,
Request.getParams()
public java.net.URI getURI()
public HttpVersion getVersion()
getVersion
in interface Request
public Request version(HttpVersion version)
public Request param(java.lang.String name, java.lang.String value)
Request
UTF-8 URL encoded
.private Request param(java.lang.String name, java.lang.String value, boolean fromQuery)
public Fields getParams()
public java.lang.String getAgent()
public Request agent(java.lang.String agent)
public Request accept(java.lang.String... accepts)
public Request header(java.lang.String name, java.lang.String value)
header
in interface Request
name
- the name of the headervalue
- the value of the headerRequest.header(HttpHeader, String)
public Request header(HttpHeader header, java.lang.String value)
Request
Adds the given value
to the specified header
.
Multiple calls with the same parameters will add multiple values;
use the value null
to remove the header completely.
public java.util.List<java.net.HttpCookie> getCookies()
getCookies
in interface Request
public Request cookie(java.net.HttpCookie cookie)
public Request attribute(java.lang.String name, java.lang.Object value)
public java.util.Map<java.lang.String,java.lang.Object> getAttributes()
getAttributes
in interface Request
public HttpFields getHeaders()
getHeaders
in interface Request
public <T extends Request.RequestListener> java.util.List<T> getRequestListeners(java.lang.Class<T> type)
getRequestListeners
in interface Request
T
- the type of listener classtype
- the class of the listener, or null for all listeners classespublic Request listener(Request.Listener listener)
public Request onRequestQueued(Request.QueuedListener listener)
onRequestQueued
in interface Request
listener
- a listener for request queued eventpublic Request onRequestBegin(Request.BeginListener listener)
onRequestBegin
in interface Request
listener
- a listener for request begin eventpublic Request onRequestHeaders(Request.HeadersListener listener)
onRequestHeaders
in interface Request
listener
- a listener for request headers eventpublic Request onRequestCommit(Request.CommitListener listener)
onRequestCommit
in interface Request
listener
- a listener for request commit eventpublic Request onRequestContent(Request.ContentListener listener)
onRequestContent
in interface Request
listener
- a listener for request content eventspublic Request onRequestSuccess(Request.SuccessListener listener)
onRequestSuccess
in interface Request
listener
- a listener for request success eventpublic Request onRequestFailure(Request.FailureListener listener)
onRequestFailure
in interface Request
listener
- a listener for request failure eventprivate Request requestListener(Request.RequestListener listener)
public Request onResponseBegin(Response.BeginListener listener)
onResponseBegin
in interface Request
listener
- a listener for response begin eventpublic Request onResponseHeader(Response.HeaderListener listener)
onResponseHeader
in interface Request
listener
- a listener for response header eventpublic Request onResponseHeaders(Response.HeadersListener listener)
onResponseHeaders
in interface Request
listener
- a listener for response headers eventpublic Request onResponseContent(Response.ContentListener listener)
onResponseContent
in interface Request
listener
- a consuming listener for response content eventspublic Request onResponseContentAsync(Response.AsyncContentListener listener)
onResponseContentAsync
in interface Request
listener
- an asynchronous listener for response content eventspublic Request onResponseContentDemanded(Response.DemandedContentListener listener)
onResponseContentDemanded
in interface Request
listener
- an asynchronous listener for response content eventspublic Request onResponseSuccess(Response.SuccessListener listener)
onResponseSuccess
in interface Request
listener
- a listener for response success eventpublic Request onResponseFailure(Response.FailureListener listener)
onResponseFailure
in interface Request
listener
- a listener for response failure eventpublic Request onComplete(Response.CompleteListener listener)
onComplete
in interface Request
listener
- a listener for complete eventpublic Request pushListener(java.util.function.BiFunction<Request,Request,Response.CompleteListener> listener)
Sets a listener for pushed resources.
When resources are pushed from the server, the given listener
is invoked for every pushed resource.
The parameters to the BiFunction
are this request and the
synthesized request for the pushed resource.
The BiFunction
should return a CompleteListener
that
may also implement other listener interfaces to be notified of various
response events, or null
to signal that the pushed resource
should be canceled.
listener
- a listener for pushed resource eventspublic HttpRequest trailers(java.util.function.Supplier<HttpFields> trailers)
public ContentProvider getContent()
getContent
in interface Request
public Request content(ContentProvider content)
public Request content(ContentProvider content, java.lang.String contentType)
public Request file(java.nio.file.Path file) throws java.io.IOException
Request
public Request file(java.nio.file.Path file, java.lang.String contentType) throws java.io.IOException
Request
public boolean isFollowRedirects()
isFollowRedirects
in interface Request
public Request followRedirects(boolean follow)
followRedirects
in interface Request
follow
- whether this request follows redirectspublic long getIdleTimeout()
getIdleTimeout
in interface Request
public Request idleTimeout(long timeout, java.util.concurrent.TimeUnit unit)
idleTimeout
in interface Request
timeout
- the idle timeout for this requestunit
- the idle timeout unitpublic long getTimeout()
getTimeout
in interface Request
public Request timeout(long timeout, java.util.concurrent.TimeUnit unit)
public ContentResponse send() throws java.lang.InterruptedException, java.util.concurrent.TimeoutException, java.util.concurrent.ExecutionException
Request
This method should be used when a simple blocking semantic is needed, and when it is known that the response content can be buffered without exceeding memory constraints.
For example, this method is not appropriate to download big files from a server; consider using
Request.send(Response.CompleteListener)
instead, passing your own Response.Listener
or a utility
listener such as InputStreamResponseListener
.
The method returns when the complete event
is fired.
send
in interface Request
ContentResponse
for this requestjava.lang.InterruptedException
- if send thread is interruptedjava.util.concurrent.TimeoutException
- if send times outjava.util.concurrent.ExecutionException
- if execution failsResponse.CompleteListener.onComplete(Result)
public void send(Response.CompleteListener listener)
Request
Sends this request and asynchronously notifies the given listener for response events.
This method should be used when the application needs to be notified of the various response events as they happen, or when the application needs to efficiently manage the response content.
The listener passed to this method may implement not only Response.CompleteListener
but also other response listener interfaces, and all the events implemented will be notified.
This allows application code to write a single listener class to handle all relevant events.
private void send(HttpRequest request, Response.CompleteListener listener)
void sent()
long getTimeoutAt()
timeout(long, TimeUnit)
protected java.util.List<Response.ResponseListener> getResponseListeners()
public java.util.function.BiFunction<Request,Request,Response.CompleteListener> getPushListener()
public java.util.function.Supplier<HttpFields> getTrailers()
public boolean abort(java.lang.Throwable cause)
Request
public java.lang.Throwable getAbortCause()
getAbortCause
in interface Request
Request.abort(Throwable)
,
or null if this request has not been abortedprivate java.lang.String buildQuery()
private java.lang.String urlEncode(java.lang.String value)
private void extractParams(java.lang.String query)
private java.lang.String urlDecode(java.lang.String value)
private java.net.URI buildURI(boolean withQuery)
private java.net.URI newURI(java.lang.String uri)
public java.lang.String toString()
toString
in class java.lang.Object