HttpContent buildContent(SegmentedData data) { if (data.endOfMessage()) { LastHttpContent last = new DefaultLastHttpContent(data.content()); if (data.trailingHeaders() != null) { last.trailingHeaders().add(data.trailingHeaders().http1Headers(true, true)); } // setChannelRequest(ctx, null); return last; } else { return new DefaultHttpContent(data.content()); } }
/** * Translate the SegmentedData object into a netty HttpContent and fire write on the next handler. */ private void buildContent(ChannelHandlerContext ctx, SegmentedData data, ChannelPromise promise) { Http1MessageSession session = setDefaultMessageSession(ctx); try { session.onResponseData(data); HttpObject obj; if (data.endOfMessage()) { LastHttpContent last = new DefaultLastHttpContent(data.content()); if (data.trailingHeaders() != null) { last.trailingHeaders().add(data.trailingHeaders().http1Headers(true, false)); } obj = last; } else { obj = new DefaultHttpContent(data.content()); } ChannelFuture future = ctx.write(obj, promise); if (session.closeConnection() && data.endOfMessage()) { future.addListener(ChannelFutureListener.CLOSE); } } finally { session.flush(); } }
full.path(), content, full.headers().http1Headers(false, true), EmptyHttpHeaders.INSTANCE); } else { request.method(), request.path(), request.headers().http1Headers(false, true));
full.status(), content, full.headers().http1Headers(false, false), EmptyHttpHeaders.INSTANCE); } else { HttpHeaders headers = response.headers().http1Headers(false, false); if (!response.headers().contains(HttpHeaderNames.TRANSFER_ENCODING)) { headers.set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);