The {@link oaj.http.entity} package contains implementations of org.apache.http.HttpEntity. These are
entities that can be sent or received with an HTTP message. They consist of a message body and the headers
Content-Type, Content-Length, and Content-Encoding.
The {@link oaj.http.resource} package contains implementations of {@link oaj.http.resource.HttpResource} which are extensions of org.apache.http.HttpEntity with
arbitrary headers added beyond the standard content headers.
- {@code org.apache.http.HttpEntity}
- {@link oaj.http.entity.BasicHttpEntity}
- {@link oaj.http.entity.ByteArrayEntity}
- {@link oaj.http.entity.FileEntity}
- {@link oaj.http.entity.StreamEntity}
- {@link oaj.http.entity.ReaderEntity}
- {@link oaj.http.entity.SerializedEntity}
- {@link oaj.http.entity.StringEntity}
- {@link oaj.http.resource.HttpResource}
- {@link oaj.http.resource.BasicResource}
- {@link oaj.http.resource.ByteArrayResource}
- {@link oaj.http.resource.FileResource}
- {@link oaj.http.resource.StreamResource}
- {@link oaj.http.resource.ReaderResource}
- {@link oaj.http.resource.StringResource}
| import static org.apache.juneau.http.HttpEntities.*;
|
| byte[] payload = {...};
|
| // Create via type builder.
| HttpEntity entity = ByteArrayEntity
| .create()
| .content(payload)
| .contentType(ContentType.APPLICATION_OCTET_STREAM);
|
| // Create via HttpEntities.
| HttpEntity entity = byteArrayEntity(payload, ContentType.APPLICATION_OCTET_STREAM);
HTTP entities and resources can be used by both the server and client side APIs described in later sections.
| // REST endpoint that simply echos an HTTP entity.
| @RestPost(path="/entity")
| public HttpEntity echoMyEntity(HttpEntity entity) {
| return entity;
| }
|
| // REST endpoint that serves up a static file.
| @RestGet(path="/resource/{fileName}")
| public HttpResource getStaticFile(@Path String fileName, Locale locale) {
| getContext().getStaticFiles().resolve(fileName, locale).orElseThrow(NotFound::new);
| }
| // REST client that uses the echo REST endpoint above.
|
| HttpEntity entity = byteArrayEntity(...);
|
| entity = RestClient.create()
| .build()
| .rootUrl(URI)
| .post("/entity", entity)
| .run()
| .assertStatus().asCode().is(200)
| .getContent().as(ByteArrayEntity.class);