Example usage for io.netty.handler.codec.http HttpHeaders setHeader

List of usage examples for io.netty.handler.codec.http HttpHeaders setHeader

Introduction

In this page you can find the example usage for io.netty.handler.codec.http HttpHeaders setHeader.

Prototype

@Deprecated
public static void setHeader(HttpMessage message, CharSequence name, Iterable<?> values) 

Source Link

Usage

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()));
}