HttpHeaders.setContentLength(httpResponse, 0); return httpResponse; } else { HttpHeaders.setContentLength(httpMessage, 0); return httpMessage; } else { HttpHeaders.setContentLength(httpMessage, httpMessage.getContent().readableBytes()); removeMessage(streamId); return httpMessage; HttpHeaders.setContentLength(httpMessage, content.readableBytes()); removeMessage(streamId); return httpMessage;
totalSize += chunk.length(); setContentLength(response, totalSize);
totalSize += chunk.length(); setContentLength(response, totalSize);
HttpHeaders.setContentLength(response, totalSize);
totalSize += chunk.length(); setContentLength(response, totalSize);
HttpHeaders.setContentLength(response, length); chan.write(response);
private void handleMetaRequest(ChannelHandlerContext ctx, HttpRequest request, final PullServerParams params) throws IOException, ExecutionException { final List<String> jsonMetas; try { jsonMetas = PullServerUtil.getJsonMeta(conf, lDirAlloc, localFS, params, gson, indexReaderCache, lowCacheHitCheckThreshold); } catch (FileNotFoundException e) { sendError(ctx, e.getMessage(), HttpResponseStatus.NO_CONTENT); return; } catch (IOException | IllegalArgumentException e) { // IOException, EOFException, IllegalArgumentException sendError(ctx, e.getMessage(), HttpResponseStatus.BAD_REQUEST); return; } catch (ExecutionException e) { // There are some problems in index cache throw new TajoInternalError(e.getCause()); } HttpResponse response = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.OK); response.setContent(ChannelBuffers.copiedBuffer(gson.toJson(jsonMetas), CharsetUtil.UTF_8)); response.setHeader(Names.CONTENT_TYPE, "application/json; charset=UTF-8"); HttpHeaders.setContentLength(response, response.getContent().readableBytes()); if (HttpHeaders.isKeepAlive(request)) { response.setHeader(Names.CONNECTION, Values.KEEP_ALIVE); } ChannelFuture writeFuture = ctx.getChannel().write(response); // Decide whether to close the connection or not. if (!HttpHeaders.isKeepAlive(request)) { // Close the connection when the whole content is written out. writeFuture.addListener(ChannelFutureListener.CLOSE); } }
HttpHeaders.setContentLength(httpResponse, length); log.trace("Writing response status and headers {}, length {}", responseContext, length);
private void sendHttpResponse(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) { // Generate an error page if response status code is not OK (200). if (res.getStatus().getCode() != 200) { res.setContent( ChannelBuffers.copiedBuffer( res.getStatus().toString(), CharsetUtil.UTF_8)); HttpHeaders.setContentLength(res, res.getContent().readableBytes()); } // Send the response and close the connection if necessary. ChannelFuture f = ctx.getChannel().write(res); if (!HttpHeaders.isKeepAlive(req) || res.getStatus().getCode() != 200) { f.addListener(ChannelFutureListener.CLOSE); } }
private void sendHttpResponse(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) { // Generate an error page if response status code is not OK (200). if (res.getStatus().getCode() != 200) { res.setContent( ChannelBuffers.copiedBuffer( res.getStatus().toString(), CharsetUtil.UTF_8)); setContentLength(res, res.getContent().readableBytes()); } // Send the response and close the connection if necessary. ChannelFuture f = ctx.getChannel().write(res); if (!isKeepAlive(req) || res.getStatus().getCode() != 200) { f.addListener(ChannelFutureListener.CLOSE); } }
/** * Sends an HTTP reply to the client. * * @param status The status of the request (e.g. 200 OK or 404 Not Found). * @param buf The content of the reply to send. */ private void sendBuffer(final HttpResponseStatus status, final ChannelBuffer buf) { if (!chan.isConnected()) { done(); return; } final DefaultHttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1, status); response.setHeader(HttpHeaders.Names.CONTENT_TYPE, guessMimeType(buf)); // TODO(tsuna): Server, X-Backend, etc. headers. response.setContent(buf); final boolean keepalive = HttpHeaders.isKeepAlive(request); if (keepalive) { HttpHeaders.setContentLength(response, buf.readableBytes()); } final ChannelFuture future = chan.write(response); if (!keepalive) { future.addListener(ChannelFutureListener.CLOSE); } done(); }
} else if (httpClientConfig.getMaximumBufferedContentLength() > 0) { setContentLength(httpRequest, 0); ChannelFuture future = transport.write(httpRequest); httpClientChannel.writeState(CONTENT_COMPLETE); ChannelBuffer httpBufferedContent = httpBufferedRequest.getContent(); int httpReadableBytes = httpBufferedContent.readableBytes(); setContentLength(httpBufferedRequest, httpReadableBytes); ChannelFuture future = transport.write(httpBufferedRequest); httpClientChannel.writeState(CONTENT_COMPLETE);
private void sendHttpResponse(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) { // Generate an error page if response status code is not OK (200). if (res.getStatus().getCode() != HttpResponseStatus.OK.getCode()) { res.setContent( ChannelBuffers.copiedBuffer( res.getStatus().toString(), CharsetUtil.UTF_8)); setContentLength(res, res.getContent().readableBytes()); } // Send the response and close the connection if necessary. ChannelFuture f = ctx.getChannel().write(res); if (!isKeepAlive(req) || res.getStatus().getCode() != HttpResponseStatus.OK.getCode()) { f.addListener(ChannelFutureListener.CLOSE); } } }
response.setCacheMaxAge(cacheMaxAge); response.setHeader(HttpHeaders.Names.CONTENT_TYPE, contentType); setContentLength(response, content.readableBytes());
private void _write(String message) { if(!this.open) return; HttpResponse res = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.OK); res.addHeader(CONTENT_TYPE, "text/plain; charset=UTF-8"); res.addHeader("Access-Control-Allow-Origin", "*"); res.addHeader("Access-Control-Allow-Credentials", "true"); res.addHeader("Connection", "keep-alive"); res.setContent(ChannelBuffers.copiedBuffer(message, CharsetUtil.UTF_8)); setContentLength(res, res.getContent().readableBytes()); // Send the response and close the connection if necessary. Channel chan = ctx.getChannel(); if(chan.isOpen()) { ChannelFuture f = chan.write(res); if (!isKeepAlive(req) || res.getStatus().getCode() != 200) { f.addListener(ChannelFutureListener.CLOSE); } } this.connected = false; }
break; default: setContentLength(httpResponse, 0); break; setContentLength(httpBufferedResponse, httpReadableBytes); ChannelFuture future = transport.write(httpBufferedResponse); httpChildChannel.writeState(CONTENT_COMPLETE);