List of usage examples for io.netty.handler.codec.http HttpHeaders setHeader
@Deprecated public static void setHeader(HttpMessage message, CharSequence name, Iterable<?> values)
From source file:snow.http.server.StaticHttpHandler.java
License:Open Source License
private void sendFile(final ChannelHandlerContext ctx, final FullHttpRequest request, final File file) throws Throwable { final RandomAccessFile raf = new RandomAccessFile(file, "r"); FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK); long modified = file.lastModified(); Date since = HttpHelper.parseDate(getHeader(request, IF_MODIFIED_SINCE)); if (since != null && since.getTime() >= modified) { HttpHelper.sendStatus(ctx, NOT_MODIFIED); } else {/* ww w.j av a 2 s .c o m*/ final long length = raf.length(); HttpHelper.setDate(response); HttpHelper.setLastModified(response, modified); HttpHeaders.setContentLength(response, length); HttpHeaders.setHeader(response, CONTENT_TYPE, mimeType(file.toPath())); setHeader(response, CACHE_CONTROL, cache); // boolean isKeep = isKeepAlive(request); // if (isKeep) { // setHeader(response, CONNECTION, KEEP_ALIVE); // } ctx.write(response); // ChannelFuture writeFuture = ctx.writeAndFlush(new ChunkedFile(raf, 0, length, 8192)); // Write the content. ChannelFuture sendFileFuture; if (useSendFile) { sendFileFuture = ctx.write(new DefaultFileRegion(raf.getChannel(), 0, length)); } else { sendFileFuture = ctx.write(new ChunkedFile(raf, 0, length, 8192)); } // Write the end marker //ChannelFuture lastContentFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT); // if (!isKeep) { sendFileFuture.addListener(CLOSE); // } } }
From source file:whitespell.net.websockets.socketio.handler.ResourceHandler.java
License:Apache License
private void sendError(ChannelHandlerContext ctx, HttpResponseStatus status) { HttpResponse response = new DefaultHttpResponse(HTTP_1_1, status); HttpHeaders.setHeader(response, CONTENT_TYPE, "text/plain; charset=UTF-8"); ByteBuf content = Unpooled.copiedBuffer("Failure: " + status.toString() + "\r\n", CharsetUtil.UTF_8); ctx.channel().write(response);/*from w ww . ja v a2s . co m*/ // Close the connection as soon as the error message is sent. ctx.channel().write(content).addListener(ChannelFutureListener.CLOSE); }
From source file:whitespell.net.websockets.socketio.handler.ResourceHandler.java
License:Apache License
/** * Sets the Date and Cache headers for the HTTP Response * * @param response/*from w w w.j ava2 s . c o m*/ * HTTP response * @param fileToCache * file to extract content type */ private void setDateAndCacheHeaders(HttpResponse response, File fileToCache) { SimpleDateFormat dateFormatter = new SimpleDateFormat(HTTP_DATE_FORMAT, Locale.US); dateFormatter.setTimeZone(TimeZone.getTimeZone(HTTP_DATE_GMT_TIMEZONE)); // Date header Calendar time = new GregorianCalendar(); HttpHeaders.setHeader(response, HttpHeaders.Names.DATE, dateFormatter.format(time.getTime())); // Add cache headers time.add(Calendar.SECOND, HTTP_CACHE_SECONDS); HttpHeaders.setHeader(response, HttpHeaders.Names.EXPIRES, dateFormatter.format(time.getTime())); HttpHeaders.setHeader(response, HttpHeaders.Names.CACHE_CONTROL, "private, max-age=" + HTTP_CACHE_SECONDS); HttpHeaders.setHeader(response, HttpHeaders.Names.LAST_MODIFIED, dateFormatter.format(new Date(fileToCache.lastModified()))); }
From source file:whitespell.net.websockets.socketio.handler.ResourceHandler.java
License:Apache License
/** * Sets the content type header for the HTTP Response * * @param response// w w w . ja va 2 s. co m * HTTP response * @param file * file to extract content type */ private void setContentTypeHeader(HttpResponse response, File file) { MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap(); HttpHeaders.setHeader(response, HttpHeaders.Names.CONTENT_TYPE, mimeTypesMap.getContentType(file.getPath())); }