@@ -22,12 +22,12 @@ package net.ccbluex.netty.http.rest
2222import io.netty.buffer.ByteBuf
2323import io.netty.buffer.Unpooled
2424import io.netty.handler.codec.http.DefaultFullHttpResponse
25+ import io.netty.handler.codec.http.DefaultHttpHeaders
2526import io.netty.handler.codec.http.EmptyHttpHeaders
2627import io.netty.handler.codec.http.FullHttpResponse
2728import io.netty.handler.codec.http.HttpHeaderNames
2829import io.netty.handler.codec.http.HttpResponseStatus
2930import io.netty.handler.codec.http.HttpVersion
30- import io.netty.handler.codec.http.ReadOnlyHttpHeaders
3131import net.ccbluex.netty.http.util.httpNotFound
3232import net.ccbluex.netty.http.model.RequestObject
3333import org.apache.tika.Tika
@@ -59,19 +59,15 @@ class ZipServant(part: String, zipInputStream: InputStream) : Node(part) {
5959 val data : ByteBuf ,
6060 val isDirectory : Boolean ,
6161 ) {
62- private val headers =
63- ReadOnlyHttpHeaders (
64- false ,
65- HttpHeaderNames .CONTENT_TYPE , tika.detect(name),
66- HttpHeaderNames .CONTENT_LENGTH , data.readableBytes().toString(),
67- )
68-
6962 fun toResponse (): FullHttpResponse {
7063 return DefaultFullHttpResponse (
7164 HttpVersion .HTTP_1_1 ,
7265 HttpResponseStatus .OK ,
73- data.duplicate(),
74- headers,
66+ data.retainedDuplicate(),
67+ DefaultHttpHeaders ().apply {
68+ this [HttpHeaderNames .CONTENT_TYPE ] = tika.detect(name)
69+ this [HttpHeaderNames .CONTENT_LENGTH ] = data.readableBytes().toString()
70+ },
7571 EmptyHttpHeaders .INSTANCE ,
7672 )
7773 }
0 commit comments