Class ParameterizedHeaderValue.Builder
java.lang.Object
com.soklet.ParameterizedHeaderValue.Builder
- Enclosing class:
ParameterizedHeaderValue
Builder used to construct instances of
ParameterizedHeaderValue via ParameterizedHeaderValue.withName(String).
This class is intended for use by a single thread.
- Author:
- Mark Allen
-
Method Summary
Modifier and TypeMethodDescriptionbuild()Builds an immutableParameterizedHeaderValue.quotedParameter(@NonNull String name, @NonNull String value) Adds a parameter whose value is encoded as an HTTPquoted-string(RFC 9110).rfc8187Parameter(@NonNull String name, @NonNull String value) Adds an extended parameter (denoted by the*suffix on the parameter name) whose value is encoded as an RFC 8187ext-value(UTF-8, percent-encoded).Returns the HTTP wire-format string for this header field value.tokenParameter(@NonNull String name, @NonNull String value) Adds a parameter whose value is encoded as an HTTPtoken(RFC 9110).
-
Method Details
-
tokenParameter
public @NonNull ParameterizedHeaderValue.Builder tokenParameter(@NonNull String name, @NonNull String value) Adds a parameter whose value is encoded as an HTTPtoken(RFC 9110).Both the parameter name and value must be valid
tokens. This method fails fast ifnameorvalueare invalid.- Parameters:
name- parameter name (token)value- parameter value (token)- Returns:
- this builder
- Throws:
IllegalArgumentException- ifnameorvalueare not valid tokens or contain control chars
-
quotedParameter
public @NonNull ParameterizedHeaderValue.Builder quotedParameter(@NonNull String name, @NonNull String value) Adds a parameter whose value is encoded as an HTTPquoted-string(RFC 9110).The parameter name must be a valid
token. The value must be ASCII and must not contain control characters. Double-quotes and backslashes are escaped as required forquoted-string.This method fails fast if illegal data is provided. For non-ASCII values, use
rfc8187Parameter(String, String).- Parameters:
name- parameter name (token)value- parameter value (quoted-string content)- Returns:
- this builder
- Throws:
IllegalArgumentException- ifnameis not a valid token orvalueis non-ASCII or contains control chars
-
rfc8187Parameter
public @NonNull ParameterizedHeaderValue.Builder rfc8187Parameter(@NonNull String name, @NonNull String value) Adds an extended parameter (denoted by the*suffix on the parameter name) whose value is encoded as an RFC 8187ext-value(UTF-8, percent-encoded).This produces a fragment of the form:
name*=UTF-8''percent-encoded-value
where the percent-encoded bytes are the UTF-8 encoding ofvalue.- Parameters:
name- parameter name (token). The*is appended automatically.value- parameter value to encode as an RFC 8187ext-value- Returns:
- this builder
- Throws:
IllegalArgumentException- ifnameis not a valid token orvaluecontains control chars
-
build
Builds an immutableParameterizedHeaderValue. -
stringValue
Returns the HTTP wire-format string for this header field value.This is equivalent to
build().getStringValue()but avoids creating an intermediateParameterizedHeaderValue.- Returns:
- the wire-format header field value
-