5. Request Body¶
Body sources are mutually exclusive. You can use only one of body, bodyStream, form, or
multipart — specifying two or more fails with an exception.
Typed JSON¶
body(Object) serializes the value with Jackson and sets content-type: application/json.
Raw Body¶
body(String content, String contentType) (2 arguments) sets a raw body and an explicit
content-type.
Form-Urlencoded¶
client.post("/login").form("user", "aria").form("password", "secret value").submitRaw();
// content-type: application/x-www-form-urlencoded, percent-encoding applied
Multipart/Form-Data¶
client.post("/upload")
.multipart("title", "patch notes")
.multipartFile("file", "notes.txt", fileContent, "text/plain")
.submitRaw();
Streaming Upload¶
bodyStream(provider, contentType) sends the body chunk by chunk with chunked transfer-encoding.
The provider has type Supplier<byte[]>, returning null when done. A streaming request can't be
rewound, so it's excluded from automatic retry.