Package org.asynchttpclient
Class RequestBuilderBase<T extends RequestBuilderBase<T>>
- java.lang.Object
-
- org.asynchttpclient.RequestBuilderBase<T>
-
- Type Parameters:
T- the builder type
- Direct Known Subclasses:
BoundRequestBuilder,RequestBuilder
public abstract class RequestBuilderBase<T extends RequestBuilderBase<T>> extends Object
Builder forRequest
-
-
Field Summary
Fields Modifier and Type Field Description protected @Nullable InetAddressaddressprotected @Nullable BodyGeneratorbodyGeneratorprotected @Nullable List<Part>bodyPartsprotected @Nullable io.netty.buffer.ByteBufbyteBufDataprotected @Nullable ByteBufferbyteBufferDataprotected byte @Nullable []byteDataprotected ChannelPoolPartitioningchannelPoolPartitioningprotected @Nullable Charsetcharsetprotected @Nullable List<byte[]>compositeByteDataprotected booleancontentTypeLockedprotected @Nullable ArrayList<io.netty.handler.codec.http.cookie.Cookie>cookiesstatic io.netty.resolver.NameResolver<InetAddress>DEFAULT_NAME_RESOLVERprotected @Nullable Filefileprotected @Nullable BooleanfollowRedirectprotected @Nullable List<Param>formParamsprotected io.netty.handler.codec.http.HttpHeadersheadersprotected @Nullable InetAddresslocalAddressprotected Stringmethodprotected io.netty.resolver.NameResolver<InetAddress>nameResolverprotected @Nullable ProxyServerproxyServerprotected @Nullable List<Param>queryParamsprotected longrangeOffsetprotected @Nullable DurationreadTimeoutprotected @Nullable Realmrealmprotected @Nullable DurationrequestTimeoutprotected @Nullable SignatureCalculatorsignatureCalculatorprotected @Nullable InputStreamstreamDataprotected @Nullable StringstringDataprotected @Nullable Uriuriprotected UriEncoderuriEncoderprotected @Nullable StringvirtualHost
-
Constructor Summary
Constructors Modifier Constructor Description protectedRequestBuilderBase(String method, boolean disableUrlEncoding)protectedRequestBuilderBase(String method, boolean disableUrlEncoding, boolean validateHeaders)protectedRequestBuilderBase(Request prototype)protectedRequestBuilderBase(Request prototype, boolean disableUrlEncoding, boolean validateHeaders)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TaddBodyPart(Part bodyPart)TaddCookie(io.netty.handler.codec.http.cookie.Cookie cookie)TaddCookieIfUnset(io.netty.handler.codec.http.cookie.Cookie cookie)Add a cookie based on its name, if it does not exist yet.TaddFormParam(String name, String value)TaddHeader(CharSequence name, Iterable<?> values)Add header values for the request.TaddHeader(CharSequence name, Object value)Add a header value for the request.TaddHeader(CharSequence name, String value)TaddOrReplaceCookie(io.netty.handler.codec.http.cookie.Cookie cookie)Add/replace a cookie based on its nameTaddQueryParam(String name, String value)TaddQueryParams(List<Param> params)Requestbuild()TclearHeaders()Remove all added headersprotected voiddoContentTypeLock()Mark the Content-Type header as explicitly set by the user.protected booleanisContentTypeLocked()Return whether the Content-Type header has been locked as explicitly set by the user.protected voidresetContentTypeLock()Clear the Content-Type lock, allowing the client to modify the Content-Type header if needed (for example, to add charset when it was auto-generated).voidresetCookies()voidresetFormParams()voidresetMultipartData()voidresetNonMultipartData()voidresetQuery()TsetAddress(InetAddress address)TsetBody(byte[] data)TsetBody(io.netty.buffer.ByteBuf data)Sets the request body from a NettyByteBuf.TsetBody(File file)TsetBody(InputStream stream)TsetBody(String data)TsetBody(ByteBuffer data)TsetBody(List<byte[]> data)TsetBody(BodyGenerator bodyGenerator)TsetBodyParts(List<Part> bodyParts)TsetChannelPoolPartitioning(ChannelPoolPartitioning channelPoolPartitioning)TsetCharset(Charset charset)TsetCookies(Collection<io.netty.handler.codec.http.cookie.Cookie> cookies)TsetFollowRedirect(boolean followRedirect)TsetFormParams(@Nullable List<Param> params)TsetFormParams(Map<String,List<String>> map)TsetHeader(CharSequence name, Iterable<?> values)Set multi-values header for the requestTsetHeader(CharSequence name, Object value)Set uni-value header for the requestTsetHeader(CharSequence name, String value)TsetHeaders(io.netty.handler.codec.http.HttpHeaders headers)TsetHeaders(Map<? extends CharSequence,? extends Iterable<?>> headers)Set request headers using a mapheadersof pair (Header name, Header values) This method could be used to set up multivalued headersTsetLocalAddress(InetAddress address)TsetMethod(String method)TsetNameResolver(io.netty.resolver.NameResolver<InetAddress> nameResolver)TsetProxyServer(ProxyServer proxyServer)TsetProxyServer(ProxyServer.Builder proxyServerBuilder)TsetQueryParams(@Nullable List<Param> params)TsetQueryParams(Map<String,List<String>> map)TsetRangeOffset(long rangeOffset)TsetReadTimeout(Duration readTimeout)TsetRealm(Realm realm)TsetRealm(Realm.Builder realm)TsetRequestTimeout(Duration requestTimeout)TsetSignatureCalculator(@Nullable SignatureCalculator signatureCalculator)TsetSingleHeaders(Map<? extends CharSequence,?> headers)Set single-value request headers using a mapheadersof pairs (Header name, Header value).TsetUri(Uri uri)TsetUrl(String url)TsetVirtualHost(String virtualHost)
-
-
-
Field Detail
-
DEFAULT_NAME_RESOLVER
public static final io.netty.resolver.NameResolver<InetAddress> DEFAULT_NAME_RESOLVER
-
uriEncoder
protected UriEncoder uriEncoder
-
signatureCalculator
@Nullable protected @Nullable SignatureCalculator signatureCalculator
-
method
protected String method
-
uri
@Nullable protected @Nullable Uri uri
-
address
@Nullable protected @Nullable InetAddress address
-
localAddress
@Nullable protected @Nullable InetAddress localAddress
-
headers
protected io.netty.handler.codec.http.HttpHeaders headers
-
cookies
@Nullable protected @Nullable ArrayList<io.netty.handler.codec.http.cookie.Cookie> cookies
-
byteData
protected byte @Nullable [] byteData
-
compositeByteData
@Nullable protected @Nullable List<byte[]> compositeByteData
-
stringData
@Nullable protected @Nullable String stringData
-
byteBufferData
@Nullable protected @Nullable ByteBuffer byteBufferData
-
byteBufData
@Nullable protected @Nullable io.netty.buffer.ByteBuf byteBufData
-
streamData
@Nullable protected @Nullable InputStream streamData
-
bodyGenerator
@Nullable protected @Nullable BodyGenerator bodyGenerator
-
virtualHost
@Nullable protected @Nullable String virtualHost
-
proxyServer
@Nullable protected @Nullable ProxyServer proxyServer
-
realm
@Nullable protected @Nullable Realm realm
-
file
@Nullable protected @Nullable File file
-
followRedirect
@Nullable protected @Nullable Boolean followRedirect
-
requestTimeout
@Nullable protected @Nullable Duration requestTimeout
-
readTimeout
@Nullable protected @Nullable Duration readTimeout
-
rangeOffset
protected long rangeOffset
-
charset
@Nullable protected @Nullable Charset charset
-
channelPoolPartitioning
protected ChannelPoolPartitioning channelPoolPartitioning
-
nameResolver
protected io.netty.resolver.NameResolver<InetAddress> nameResolver
-
contentTypeLocked
protected boolean contentTypeLocked
-
-
Constructor Detail
-
RequestBuilderBase
protected RequestBuilderBase(String method, boolean disableUrlEncoding)
-
RequestBuilderBase
protected RequestBuilderBase(String method, boolean disableUrlEncoding, boolean validateHeaders)
-
RequestBuilderBase
protected RequestBuilderBase(Request prototype)
-
RequestBuilderBase
protected RequestBuilderBase(Request prototype, boolean disableUrlEncoding, boolean validateHeaders)
-
-
Method Detail
-
doContentTypeLock
protected final void doContentTypeLock()
Mark the Content-Type header as explicitly set by the user. When locked, the Content-Type header will not be modified by the client (e.g., charset addition).
-
resetContentTypeLock
protected final void resetContentTypeLock()
Clear the Content-Type lock, allowing the client to modify the Content-Type header if needed (for example, to add charset when it was auto-generated).
-
isContentTypeLocked
protected final boolean isContentTypeLocked()
Return whether the Content-Type header has been locked as explicitly set by the user.
-
setAddress
public T setAddress(InetAddress address)
-
setLocalAddress
public T setLocalAddress(InetAddress address)
-
clearHeaders
public T clearHeaders()
Remove all added headers- Returns:
this
-
setHeader
public T setHeader(CharSequence name, String value)
- Parameters:
name- header namevalue- header value to set- Returns:
this- See Also:
setHeader(CharSequence, Object)
-
setHeader
public T setHeader(CharSequence name, Object value)
Set uni-value header for the request- Parameters:
name- header namevalue- header value to set- Returns:
this
-
setHeader
public T setHeader(CharSequence name, Iterable<?> values)
Set multi-values header for the request- Parameters:
name- header namevalues-Iterablewith multiple header values to set- Returns:
this
-
addHeader
public T addHeader(CharSequence name, String value)
- Parameters:
name- header namevalue- header value to add- Returns:
this- See Also:
addHeader(CharSequence, Object)
-
addHeader
public T addHeader(CharSequence name, Object value)
Add a header value for the request. If a header withnamewas set up for this request already - call will add one more header value and convert it to multi-value header- Parameters:
name- header namevalue- header value to add- Returns:
this
-
addHeader
public T addHeader(CharSequence name, Iterable<?> values)
Add header values for the request. If a header withnamewas set up for this request already - call will add more header values and convert it to multi-value header- Parameters:
name- header namevalues-Iterablewith multiple header values to add- Returns:
-
setHeaders
public T setHeaders(io.netty.handler.codec.http.HttpHeaders headers)
-
setHeaders
public T setHeaders(Map<? extends CharSequence,? extends Iterable<?>> headers)
Set request headers using a mapheadersof pair (Header name, Header values) This method could be used to set up multivalued headers- Parameters:
headers- map of header names as the map keys and header valuesIterableas the map values- Returns:
this
-
setSingleHeaders
public T setSingleHeaders(Map<? extends CharSequence,?> headers)
Set single-value request headers using a mapheadersof pairs (Header name, Header value). To set headers with multiple values usesetHeaders(Map)- Parameters:
headers- map of header names as the map keys and header values as the map values- Returns:
this
-
setCookies
public T setCookies(Collection<io.netty.handler.codec.http.cookie.Cookie> cookies)
-
addCookie
public T addCookie(io.netty.handler.codec.http.cookie.Cookie cookie)
-
addOrReplaceCookie
public T addOrReplaceCookie(io.netty.handler.codec.http.cookie.Cookie cookie)
Add/replace a cookie based on its name- Parameters:
cookie- the new cookie- Returns:
- this
-
addCookieIfUnset
public T addCookieIfUnset(io.netty.handler.codec.http.cookie.Cookie cookie)
Add a cookie based on its name, if it does not exist yet. Cookies that are already set will be ignored.- Parameters:
cookie- the new cookie- Returns:
- this
-
resetCookies
public void resetCookies()
-
resetQuery
public void resetQuery()
-
resetFormParams
public void resetFormParams()
-
resetNonMultipartData
public void resetNonMultipartData()
-
resetMultipartData
public void resetMultipartData()
-
setBody
public T setBody(byte[] data)
-
setBody
public T setBody(ByteBuffer data)
-
setBody
public T setBody(io.netty.buffer.ByteBuf data)
Sets the request body from a NettyByteBuf.Ownership: the caller retains ownership of
data. AsyncHttpClient sends a retained duplicate per attempt (so redirects, auth replays and retries each get their own reference and the body survives across them) and never releasesdataitself. The caller is responsible for releasingdataonce the request has completed. (This differs from older releases, which consumed and released the buffer on the first send — and double-freed it on any retry.)- Parameters:
data- the request body; the caller keeps ownership and must release it after the request completes- Returns:
- this builder
-
setBody
public T setBody(InputStream stream)
-
setBody
public T setBody(BodyGenerator bodyGenerator)
-
setProxyServer
public T setProxyServer(ProxyServer proxyServer)
-
setProxyServer
public T setProxyServer(ProxyServer.Builder proxyServerBuilder)
-
setRealm
public T setRealm(Realm.Builder realm)
-
setFollowRedirect
public T setFollowRedirect(boolean followRedirect)
-
setRangeOffset
public T setRangeOffset(long rangeOffset)
-
setChannelPoolPartitioning
public T setChannelPoolPartitioning(ChannelPoolPartitioning channelPoolPartitioning)
-
setNameResolver
public T setNameResolver(io.netty.resolver.NameResolver<InetAddress> nameResolver)
-
setSignatureCalculator
public T setSignatureCalculator(@Nullable @Nullable SignatureCalculator signatureCalculator)
-
build
public Request build()
-
-