Class FormBuilder
Important: multipart support requires an additional dependency: 'org.glassfish.jersey.media:jersey-media-multipart'.
The type of the form is detected by provided values: if at least one value requires multipart, then multipart
entity is created, otherwise urlencoded entity created. Only urlencoded entity could be used with GET.
Multipart form type could be explicitly forced with forceMultipart().
Multipart values are: File, InputStream, or any
BodyPart (including prepared fild objects like
FormDataBodyPart.
Example urlencoded form usage:
buildForm(...)
.param("name1", value1)
.param("name2", value2)
.buildPost()
.invoke()
Example multipart form usage:
buildForm(...)
.param("name1", value1)
.param("file", file)
.buildPost()
.invoke()
Also, builder could be used just for entity building: buildEntity() (for manual entity usage).
HTTP standard supports only GET and POST methods for forms, so there are no other shortcuts.
- Since:
- 15.09.2025
-
Constructor Summary
ConstructorsConstructorDescriptionFormBuilder(jakarta.ws.rs.client.WebTarget target, TestRequestConfig config) Create form builder. -
Method Summary
Modifier and TypeMethodDescriptionjakarta.ws.rs.client.Entity<?>Build entity for manual usage in calls.buildGet()Build GET request builder for a form.Build POST request builder for a form.Build query parameters for manual usage in GET calls.dateFormat(String format) Shortcut to configure both date formatters with the same pattern.dateFormatter(DateFormat formatter) Java.util date formatter for formatting date parameters.dateTimeFormatter(DateTimeFormatter formatter) Java.time formatter for formatting date parameters.Normally, a form type is detected from the provided values: if at least one value requires multipart, then multipart type selected, otherwise urlencoded used.Add form parameter.Same asparam(String, Object)but provides multiple parameters for the same name.Adds multiple form params.toString()
-
Constructor Details
-
FormBuilder
Create form builder.- Parameters:
target- form targetconfig- inherited defaults
-
-
Method Details
-
forceMultipart
Normally, a form type is detected from the provided values: if at least one value requires multipart, then multipart type selected, otherwise urlencoded used.This option forces multipart type usage, even if it is not required according to provided values.
- Returns:
- builder instance for chained calls
-
dateFormatter
Java.util date formatter for formatting date parameters.- Parameters:
formatter- date formatter- Returns:
- builder instance for chained calls
- See Also:
-
dateTimeFormatter
Java.time formatter for formatting date parameters.- Parameters:
formatter- date formatter- Returns:
- builder instance for chained calls
- See Also:
-
dateFormat
Shortcut to configure both date formatters with the same pattern.- Parameters:
format- format- Returns:
- builder instance for chained calls
- See Also:
-
param
Add form parameter. Multiple values could be provided with collection or array.FileorInputStreamor anything derived fromBodyPartwould lead to multipart form creation. For multipart requests, value could be provided in form of manually constructed fiels, likeFormDataMultiPart(any body part implementation).For other value types, value is converted to string:
- Date fields string conversion could be customized with date formatters (one for java.util and other for java.time api).
- Null values converted to ""
- Collections converted to a comma-separated string of values (converted to string)
- By default, call toString on provided object
Custom date formatters could be set as a default for all requests with:
TestClientDefaults.defaultFormDateFormatter(java.text.DateFormat)andTestClientDefaults.defaultFormDateTimeFormatter(java.time.format.DateTimeFormatter). Or for request with:dateFormatter(java.text.DateFormat)anddateTimeFormatter(java.time.format.DateTimeFormatter).Multiple calls override previously declared parameter.
- Parameters:
name- parameter namevalue- parameter value- Returns:
- builder instance for chained calls
-
param
Same asparam(String, Object)but provides multiple parameters for the same name.- Parameters:
name- parameter namevalues- parameter values- Returns:
- builder instance for chained calls
-
params
Adds multiple form params. Multiple values could be provided with collection or array.- Parameters:
params- form params map.- Returns:
- builder instance for chained calls
-
buildPost
Build POST request builder for a form. This is the same as callingTestClient.buildPost(String, Object, Object...), but with pre-build entity.- Returns:
- POST request builder
-
buildGet
Build GET request builder for a form. This is the same as callingTestClient.buildGet(String, Object...), but with pre-build query params.Call will be failed if multipart form creation is required (which can't be handled with GET).
- Returns:
- GET request builder
-
buildEntity
public jakarta.ws.rs.client.Entity<?> buildEntity()Build entity for manual usage in calls.For example, could be used in manual post call (as body):
post("/somePath/", form).invoke().- Returns:
- entity (form body)
-
buildQueryParams
Build query parameters for manual usage in GET calls.For example:
buildGet("/somePath/").queryParams(params).invoke())Parameters with multiple values would contain lists of values.
- Returns:
- parameters map to be used in GET request
-
toString
-