The request body can either be passed in with the client creator method (e.g. {@link oajrc.RestClient#post(Object,Object) post(uri,body)}),
or can be specified via the following methods:
- {@link oajrc.RestRequest}
- {@link oajrc.RestRequest#content(Object) content(Object)}
- {@link oajrc.RestRequest#content(Object,HttpPartSchema) content(Object,HttpPartSchema)}
The request body can be any of the following types:
-
{@link java.lang.Object} - POJO to be converted to text using the {@link oaj.serializer.Serializer} defined on the client or request.
-
{@link java.io.Reader} - Raw contents of {@code Reader} will be serialized to remote resource.
-
{@link java.io.InputStream} - Raw contents of {@code InputStream} will be serialized to remote resource.
-
{@link org.apache.http.HttpEntity} - Bypass Juneau serialization and pass HttpEntity directly to HttpClient.
-
{@link oaj.http.part.PartList} - Converted to a URL-encoded FORM post.
-
{@link java.util.function.Supplier} - A supplier of anything on this list.
| // Create a client with JSON 5 support.
| RestClient client = RestClient.create().json5().build();
|
| // Post a JSON-serialized bean.
| client
| .post(URI)
| .content(bean)
| .complete()
| .assertStatus().asCode().is(200);
|
| // Post contents from a reader.
| client
| .post(URI)
| .content(new FileReader("/tmp/foo.json"))
| .complete()
| .assertStatus().asCode().is(200);
|
| // Post contents from an Apache HttpEntity object.
| client
| .post(URI)
| .content(new StringEntity(jsonString, ContentType.APPLICATION_JSON))
| .complete()
| .assertStatus().asCode().is(200);
- If the serializer on the client or request is explicitly set to null, POJOs will be converted to strings
using the registered part serializer as content type "text/plain. If the part serializer is also null,
POJOs will be converted to strings using {@link oaj.ClassMeta#toString(Object)} which typically just calls {@link java.lang.Object#toString()}.