public interface Request
Request
represents a HTTP request, and offers a fluent interface to customize
various attributes such as the path, the headers, the content, etc.
You can create Request
objects via HttpClient#newRequest(String)
and
you can send them using either send()
for a blocking semantic, or
send(Response.CompleteListener)
for an asynchronous semantic.
Response
Modifier and Type | Interface and Description |
---|---|
static interface |
Request.BeginListener
Listener for the request begin event.
|
static interface |
Request.CommitListener
Listener for the request committed event.
|
static interface |
Request.ContentListener
Listener for the request content event.
|
static interface |
Request.FailureListener
Listener for the request failed event.
|
static interface |
Request.HeadersListener
Listener for the request headers event.
|
static interface |
Request.Listener
Listener for all request events.
|
static interface |
Request.QueuedListener
Listener for the request queued event.
|
static interface |
Request.RequestListener
Common, empty, super-interface for request listeners.
|
static interface |
Request.SuccessListener
Listener for the request succeeded event.
|
String getScheme()
Request scheme(String scheme)
scheme
- the scheme of this request, such as "http" or "https"String getHost()
int getPort()
String getMethod()
Request method(HttpMethod method)
method
- the method of this request, such as GET or POSTRequest method(String method)
method
- the method of this request, such as GET or POSTString getPath()
getQuery()
Request path(String path)
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 param(String, String)
.path
- the path of this request, such as "/" or "/path?param=1"String getQuery()
getPath()
,
getParams()
URI getURI()
HttpVersion getVersion()
Request version(HttpVersion version)
version
- the HTTP version of this request, such as "HTTP/1.1"Fields getParams()
Request param(String name, String value)
UTF-8 URL encoded
.name
- the name of the query parametervalue
- the value of the query parameterHttpFields getHeaders()
Request header(String name, String value)
name
- the name of the headervalue
- the value of the headerheader(HttpHeader, String)
Request header(HttpHeader header, String value)
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.
header
- the header namevalue
- the value of the headerList<HttpCookie> getCookies()
Request cookie(HttpCookie cookie)
cookie
- a cookie for this requestRequest attribute(String name, Object value)
name
- the name of the attributevalue
- the value of the attributeContentProvider getContent()
Request content(ContentProvider content)
content
- the content provider of this requestRequest content(ContentProvider content, String contentType)
content
- the content provider of this requestRequest file(Path file) throws IOException
file
- the file to uploadIOException
- if the file does not exist or cannot be readRequest file(Path file, String contentType) throws IOException
file
- the file to uploadcontentType
- the content type of the fileIOException
- if the file does not exist or cannot be readString getAgent()
Request agent(String agent)
agent
- the user agent for this request (corresponds to the User-Agent
header)Request accept(String... accepts)
accepts
- the media types that are acceptable in the response, such as
"text/plain;q=0.5" or "text/html" (corresponds to the Accept
header)long getIdleTimeout()
Request idleTimeout(long timeout, TimeUnit unit)
timeout
- the idle timeout for this requestunit
- the idle timeout unitlong getTimeout()
Request timeout(long timeout, TimeUnit unit)
timeout
- the total timeout for the request/response conversationunit
- the timeout unitboolean isFollowRedirects()
Request followRedirects(boolean follow)
follow
- whether this request follows redirects<T extends Request.RequestListener> List<T> getRequestListeners(Class<T> listenerClass)
listenerClass
- the class of the listener, or null for all listeners classesRequest listener(Request.Listener listener)
listener
- a listener for request eventsRequest onRequestQueued(Request.QueuedListener listener)
listener
- a listener for request queued eventRequest onRequestBegin(Request.BeginListener listener)
listener
- a listener for request begin eventRequest onRequestHeaders(Request.HeadersListener listener)
listener
- a listener for request headers eventRequest onRequestCommit(Request.CommitListener listener)
listener
- a listener for request commit eventRequest onRequestContent(Request.ContentListener listener)
listener
- a listener for request content eventsRequest onRequestSuccess(Request.SuccessListener listener)
listener
- a listener for request success eventRequest onRequestFailure(Request.FailureListener listener)
listener
- a listener for request failure eventRequest onResponseBegin(Response.BeginListener listener)
listener
- a listener for response begin eventRequest onResponseHeader(Response.HeaderListener listener)
listener
- a listener for response header eventRequest onResponseHeaders(Response.HeadersListener listener)
listener
- a listener for response headers eventRequest onResponseContent(Response.ContentListener listener)
listener
- a consuming listener for response content eventsRequest onResponseContentAsync(Response.AsyncContentListener listener)
listener
- an asynchronous listener for response content eventsRequest onResponseSuccess(Response.SuccessListener listener)
listener
- a listener for response success eventRequest onResponseFailure(Response.FailureListener listener)
listener
- a listener for response failure eventRequest onComplete(Response.CompleteListener listener)
listener
- a listener for complete eventContentResponse send() throws InterruptedException, TimeoutException, ExecutionException
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
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.
ContentResponse
for this requestInterruptedException
TimeoutException
ExecutionException
Response.CompleteListener.onComplete(Result)
void send(Response.CompleteListener listener)
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.
listener
- the listener that receives response eventsboolean abort(Throwable cause)
cause
- the abort cause, must not be nullThrowable getAbortCause()
abort(Throwable)
,
or null if this request has not been abortedCopyright © 1995-2015 Webtide. All Rights Reserved.