Class FormBodyPartBuilder
- java.lang.Object
-
- org.apache.hc.client5.http.entity.mime.FormBodyPartBuilder
-
public class FormBodyPartBuilder extends java.lang.ObjectBuilder for individualFormBodyParts.- Since:
- 4.4
-
-
Field Summary
Fields Modifier and Type Field Description private ContentBodybodyprivate Headerheaderprivate java.nio.charset.CharsetEncoderiso8859_1EncoderEncoder used to check if strings can be encoded in ISO-8859-1, supporting filename compatibility determinations in multipart form data.private HttpMultipartModemodeThe multipart mode determining how filenames are encoded in theContent-Dispositionheader, defaults toHttpMultipartMode.STRICT.private java.lang.Stringname
-
Constructor Summary
Constructors Constructor Description FormBodyPartBuilder()FormBodyPartBuilder(java.lang.String name, ContentBody body, HttpMultipartMode mode)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FormBodyPartBuilderaddField(java.lang.String name, java.lang.String value)FormBodyPartBuilderaddField(java.lang.String name, java.lang.String value, java.util.List<org.apache.hc.core5.http.NameValuePair> parameters)FormBodyPartbuild()private booleancanEncodeToISO8859_1(java.lang.String input)Determines whether the given string can be encoded in ISO-8859-1 without loss of data.static FormBodyPartBuildercreate()static FormBodyPartBuildercreate(java.lang.String name, ContentBody body)static FormBodyPartBuildercreate(java.lang.String name, ContentBody body, HttpMultipartMode mode)Creates a new builder instance with the specified name, content body, and multipart mode.private static java.lang.StringencodeRFC5987(java.lang.String filename)Encodes the given filename according to RFC 5987, prefixing it withUTF-8''and applying percent-encoding to non-ASCII characters.FormBodyPartBuilderremoveFields(java.lang.String name)FormBodyPartBuildersetBody(ContentBody body)FormBodyPartBuildersetField(java.lang.String name, java.lang.String value)FormBodyPartBuildersetName(java.lang.String name)
-
-
-
Field Detail
-
name
private java.lang.String name
-
body
private ContentBody body
-
header
private final Header header
-
mode
private HttpMultipartMode mode
The multipart mode determining how filenames are encoded in theContent-Dispositionheader, defaults toHttpMultipartMode.STRICT.- Since:
- 5.5
-
iso8859_1Encoder
private java.nio.charset.CharsetEncoder iso8859_1Encoder
Encoder used to check if strings can be encoded in ISO-8859-1, supporting filename compatibility determinations in multipart form data.
-
-
Constructor Detail
-
FormBodyPartBuilder
FormBodyPartBuilder(java.lang.String name, ContentBody body, HttpMultipartMode mode)
-
FormBodyPartBuilder
FormBodyPartBuilder()
-
-
Method Detail
-
create
public static FormBodyPartBuilder create(java.lang.String name, ContentBody body, HttpMultipartMode mode)
Creates a new builder instance with the specified name, content body, and multipart mode.- Parameters:
name- the name of the form fieldbody- the content body of the partmode- theHttpMultipartModeto use, determining filename encoding behavior;- Returns:
- a new
FormBodyPartBuilderinstance - Since:
- 5.5
-
create
public static FormBodyPartBuilder create(java.lang.String name, ContentBody body)
-
create
public static FormBodyPartBuilder create()
-
setName
public FormBodyPartBuilder setName(java.lang.String name)
-
setBody
public FormBodyPartBuilder setBody(ContentBody body)
-
addField
public FormBodyPartBuilder addField(java.lang.String name, java.lang.String value, java.util.List<org.apache.hc.core5.http.NameValuePair> parameters)
- Since:
- 4.6
-
addField
public FormBodyPartBuilder addField(java.lang.String name, java.lang.String value)
-
setField
public FormBodyPartBuilder setField(java.lang.String name, java.lang.String value)
-
removeFields
public FormBodyPartBuilder removeFields(java.lang.String name)
-
canEncodeToISO8859_1
private boolean canEncodeToISO8859_1(java.lang.String input)
Determines whether the given string can be encoded in ISO-8859-1 without loss of data. This is used to decide whether thefilenameparameter can be used as-is or if thefilename*parameter is needed for non-ISO-8859-1 characters.- Parameters:
input- the string to check, must not benull- Returns:
trueif the string can be encoded in ISO-8859-1,falseotherwise- Since:
- 5.5
-
encodeRFC5987
private static java.lang.String encodeRFC5987(java.lang.String filename)
Encodes the given filename according to RFC 5987, prefixing it withUTF-8''and applying percent-encoding to non-ASCII characters. This is used for thefilename*parameter in theContent-Dispositionheader when non-ISO-8859-1 characters are present.- Parameters:
filename- the filename to encode, must not benull- Returns:
- the RFC 5987-encoded string, e.g.,
UTF-8''example%20text - Since:
- 5.5
-
build
public FormBodyPart build()
-
-