This reference describes how the servlet-interceptor.adoc handles
response bodies of various types. Much of this behavior depends on the
protocols WritableBody and WritableBodyAsync. See
important-protocols.adoc for details about those.
The exact handling of the response body depends on the Java or Clojure type of the value in the :body key of the response-map.adoc.
| Type | Default content type | Serialization | Async? | 
|---|---|---|---|
| byte array | application/octet-stream | direct byte copy | no | 
| string | text/plain | bytes according to platform’s default character encoding | no | 
| Clojure collection | application/edn | text representation of data, same as Clojure’s writer | no | 
| Clojure function | nil | depends on the function | no | 
| File | application/octet-stream | bytes of the file copied to the output stream | no | 
| InputStream | application/octet-stream | bytes of the input stream copied to the output stream | no | 
| ReadableByteChannel (NIO) | application/octet-stream | bytes of the channel copied to the output stream | yes | 
| ByteBuffer (NIO) | application/octet-stream | bytes of the buffer copied to the output stream | yes | 
| {core_async} channel | nil | see below | yes | 
When a {core_async} channel delivers a message, that message is written to the stream, using any of the synchronous dispatches above. The message from the channel must not be another channel, it must be a value that can be immediately acted upon.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs | 
| ← | Move to previous article | 
| → | Move to next article | 
| Ctrl+/ | Jump to the search field |