Package ratpack.core.http
Class ResponseChunks
- java.lang.Object
-
- ratpack.core.http.ResponseChunks
-
- All Implemented Interfaces:
Renderable
public class ResponseChunks extends Object implements Renderable
Arenderableobject for streaming data with HTTP chunked transfer-encoding.A
rendererfor this type is implicitly provided by Ratpack core.Example usage:
import org.reactivestreams.Publisher; import ratpack.exec.stream.Streams; import ratpack.test.embed.EmbeddedApp; import java.time.Duration; import static ratpack.core.http.ResponseChunks.stringChunks; import static org.junit.jupiter.api.Assertions.assertEquals; public class Example { public static void main(String[] args) throws Exception { EmbeddedApp.fromHandler(ctx -> { Publisher<String> strings = Streams.periodically(ctx, Duration.ofMillis(5), i -> i < 5 ? i.toString() : null ); ctx.render(stringChunks(strings)); }).test(httpClient -> { assertEquals("01234", httpClient.getText()); }); } }
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ResponseChunksbufferChunks(CharSequence contentType, Publisher<? extends io.netty.buffer.ByteBuf> publisher)Transmit each set of bytes emitted by the publisher as a chunk.CharSequencegetContentType()The intended value of the content-type header.Publisher<? extends io.netty.buffer.ByteBuf>publisher(io.netty.buffer.ByteBufAllocator byteBufAllocator)Returns the chunk publisher.voidrender(Context context)Render this object to the response.static ResponseChunksstringChunks(CharSequence contentType, Charset charset, Publisher<? extends CharSequence> publisher)Transmit each string emitted by the publisher as a chunk.static ResponseChunksstringChunks(CharSequence contentType, Publisher<? extends CharSequence> publisher)Transmit each string emitted by the publisher as a chunk.static ResponseChunksstringChunks(Publisher<? extends CharSequence> publisher)Transmit each string emitted by the publisher as a chunk.
-
-
-
Method Detail
-
stringChunks
public static ResponseChunks stringChunks(Publisher<? extends CharSequence> publisher)
Transmit each string emitted by the publisher as a chunk.The content type of the response is set to
text/plain;charset=UTF-8and each string is decoded as UTF-8.- Parameters:
publisher- a publisher of strings- Returns:
- a renderable object
-
stringChunks
public static ResponseChunks stringChunks(CharSequence contentType, Publisher<? extends CharSequence> publisher)
Transmit each string emitted by the publisher as a chunk.The content type of the response is set to the given content type and each string is decoded as UTF-8.
- Parameters:
contentType- the value for the content-type headerpublisher- a publisher of strings- Returns:
- a renderable object
-
stringChunks
public static ResponseChunks stringChunks(CharSequence contentType, Charset charset, Publisher<? extends CharSequence> publisher)
Transmit each string emitted by the publisher as a chunk.The content type of the response is set to the given content type and each string is decoded as the given charset.
- Parameters:
contentType- the value for the content-type headercharset- the charset to use to decode each string chunkpublisher- a publisher of strings- Returns:
- a renderable object
-
bufferChunks
public static ResponseChunks bufferChunks(CharSequence contentType, Publisher<? extends io.netty.buffer.ByteBuf> publisher)
Transmit each set of bytes emitted by the publisher as a chunk.The content type of the response is set to the given content type.
- Parameters:
contentType- the value for the content-type headerpublisher- a publisher of byte buffers- Returns:
- a renderable object
-
publisher
public Publisher<? extends io.netty.buffer.ByteBuf> publisher(io.netty.buffer.ByteBufAllocator byteBufAllocator)
Returns the chunk publisher.This method is called internally by the renderer for this type.
- Parameters:
byteBufAllocator- a byte buf allocator that can be used if necessary to allocate byte buffers- Returns:
- a publisher of byte buffers
-
getContentType
public CharSequence getContentType()
The intended value of the content-type header.- Returns:
- the intended value of the content-type header.
-
render
public void render(Context context) throws Exception
Render this object to the response.- Specified by:
renderin interfaceRenderable- Parameters:
context- the request handling context- Throws:
Exception- any
-
-