From fcf50f03d1d9dc22eb0d05b35b89083adbb18a52 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Fri, 7 Feb 2020 19:19:54 -0500 Subject: [PATCH] add makeHttpChunk utility --- .../java/org/cobbzilla/util/http/HttpUtil.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/org/cobbzilla/util/http/HttpUtil.java b/src/main/java/org/cobbzilla/util/http/HttpUtil.java index 15235ec..fef5013 100644 --- a/src/main/java/org/cobbzilla/util/http/HttpUtil.java +++ b/src/main/java/org/cobbzilla/util/http/HttpUtil.java @@ -360,4 +360,18 @@ public class HttpUtil { return meta; } + + public static final byte[] CHUNK_SEP = "\r\n".getBytes(); + public static final int CHUNK_EXTRA_BYTES = 2 * CHUNK_SEP.length; + public static final byte[] CHUNK_END = "0\r\n".getBytes(); + + public static byte[] makeHttpChunk(byte[] buffer, int bytesRead) { + final byte[] httpChunkLengthBytes = Integer.toHexString(bytesRead).getBytes(); + final byte[] httpChunk = new byte[bytesRead + httpChunkLengthBytes.length + CHUNK_EXTRA_BYTES]; + System.arraycopy(httpChunkLengthBytes, 0, httpChunk, 0, httpChunkLengthBytes.length); + System.arraycopy(buffer, 0, httpChunk, httpChunkLengthBytes.length, bytesRead); + System.arraycopy(CHUNK_SEP, 0, httpChunk, httpChunkLengthBytes.length+bytesRead, CHUNK_SEP.length); + return httpChunk; + } + }