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:net.mms_projects.copy_it.api.http.Handler.java

License:Open Source License

/**
 * Internal message handler, this is where all the http requests come in. This is where most of the authorization
 * and page logic goes on./*from w w  w.j  av  a  2s.co m*/
 * @see net.mms_projects.copy_it.api.http.Page
 * @see net.mms_projects.copy_it.api.oauth.HeaderVerifier
 */
protected void messageReceived(final ChannelHandlerContext chx, final HttpObject o) throws Exception {
    if (o instanceof HttpRequest) {
        final HttpRequest http = (HttpRequest) o;
        this.request = http;
        final URI uri = new URI(request.getUri());
        if ((page = Page.getNoAuthPage(uri.getPath())) != null) {
            database = DatabasePool.getDBConnection();
            if (request.getMethod() == HttpMethod.GET) {
                try {
                    final FullHttpResponse response = page.onGetRequest(request, database);
                    HttpHeaders.setContentLength(response, response.content().readableBytes());
                    HttpHeaders.setHeader(response, CONTENT_TYPE, page.GetContentType());
                    if (isKeepAlive(request)) {
                        HttpHeaders.setKeepAlive(response, true);
                        chx.write(response);
                    } else
                        chx.write(response).addListener(ChannelFutureListener.CLOSE);
                } catch (ErrorException e) {
                    e.printStackTrace();
                    final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                            e.getStatus(), Unpooled.copiedBuffer(e.toString(), CharsetUtil.UTF_8));
                    HttpHeaders.setHeader(response, CONTENT_TYPE, Page.ContentTypes.JSON_TYPE);
                    chx.write(response).addListener(ChannelFutureListener.CLOSE);
                } catch (Exception e) {
                    e.printStackTrace();
                    final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                            INTERNAL_SERVER_ERROR);
                    chx.write(response).addListener(ChannelFutureListener.CLOSE);
                }
            } else if (request.getMethod() == HttpMethod.POST)
                postRequestDecoder = new HttpPostRequestDecoder(request);
        } else if ((page = Page.getAuthPage(uri.getPath())) == null) {
            final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                    NOT_FOUND, Unpooled.copiedBuffer("404", CharsetUtil.UTF_8));
            chx.write(response).addListener(ChannelFutureListener.CLOSE);
        } else {
            try {
                headerVerifier = new HeaderVerifier(http, uri);
                database = DatabasePool.getDBConnection();
                headerVerifier.verifyConsumer(database);
                headerVerifier.verifyOAuthToken(database);
                headerVerifier.verifyOAuthNonce(database);
                if (request.getMethod() == HttpMethod.GET) {
                    headerVerifier.checkSignature(null, false);
                    final FullHttpResponse response = ((AuthPage) page).onGetRequest(request, database,
                            headerVerifier);
                    HttpHeaders.setContentLength(response, response.content().readableBytes());
                    HttpHeaders.setHeader(response, CONTENT_TYPE, page.GetContentType());
                    if (isKeepAlive(request)) {
                        HttpHeaders.setKeepAlive(response, true);
                        chx.write(response);
                    } else
                        chx.write(response).addListener(ChannelFutureListener.CLOSE);
                } else if (request.getMethod() == HttpMethod.POST)
                    postRequestDecoder = new HttpPostRequestDecoder(request);
            } catch (ErrorException e) {
                e.printStackTrace();
                final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                        e.getStatus(), Unpooled.copiedBuffer(e.toString(), CharsetUtil.UTF_8));
                HttpHeaders.setHeader(response, CONTENT_TYPE, Page.ContentTypes.JSON_TYPE);
                chx.write(response).addListener(ChannelFutureListener.CLOSE);
            } catch (Exception e) {
                e.printStackTrace();
                final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                        INTERNAL_SERVER_ERROR);
                chx.write(response).addListener(ChannelFutureListener.CLOSE);
            }
        }
    } else if (o instanceof HttpContent && request != null && request.getMethod() == HttpMethod.POST) {
        final HttpContent httpContent = (HttpContent) o;
        postRequestDecoder.offer(httpContent);
        if (o instanceof LastHttpContent && page != null) {
            try {
                FullHttpResponse response;
                if (headerVerifier != null && page instanceof AuthPage) {
                    headerVerifier.checkSignature(postRequestDecoder, false);
                    response = ((AuthPage) page).onPostRequest(request, postRequestDecoder, database,
                            headerVerifier);
                } else
                    response = page.onPostRequest(request, postRequestDecoder, database);
                HttpHeaders.setContentLength(response, response.content().readableBytes());
                HttpHeaders.setHeader(response, CONTENT_TYPE, page.GetContentType());
                if (isKeepAlive(request)) {
                    HttpHeaders.setKeepAlive(response, true);
                    chx.write(response);
                } else
                    chx.write(response).addListener(ChannelFutureListener.CLOSE);
            } catch (ErrorException e) {
                e.printStackTrace();
                final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                        e.getStatus(), Unpooled.copiedBuffer(e.toString(), CharsetUtil.UTF_8));
                HttpHeaders.setHeader(response, CONTENT_TYPE, Page.ContentTypes.JSON_TYPE);
                chx.write(response).addListener(ChannelFutureListener.CLOSE);
            } catch (Exception e) {
                e.printStackTrace();
                final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(),
                        INTERNAL_SERVER_ERROR);
                chx.write(response).addListener(ChannelFutureListener.CLOSE);
            }
        }
    }
    if (o instanceof LastHttpContent && database != null)
        database.free();
}

From source file:org.animotron.bridge.http.helper.HttpHelper.java

License:Open Source License

public static void sendFile(final ChannelHandlerContext ctx, final FullHttpRequest request, final File file,
        String mime, String cache) throws Throwable {
    final RandomAccessFile raf = new RandomAccessFile(file, "r");
    FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK);
    long modified = file.lastModified();
    Date since = parseDate(getHeader(request, IF_MODIFIED_SINCE));
    if (since != null && since.getTime() >= modified) {
        sendStatus(ctx, NOT_MODIFIED);//ww w .j  a  v a 2 s  . c om
    } else {
        final long length = raf.length();
        setDate(response);
        setLastModified(response, modified);
        HttpHeaders.setContentLength(response, length);
        HttpHeaders.setHeader(response, CONTENT_TYPE, MimeHelper.check(mime));
        setHeader(response, CACHE_CONTROL, cache);
        if (isKeepAlive(request)) {
            setHeader(response, CONNECTION, KEEP_ALIVE);
        }
        ctx.write(response);
        ChannelFuture writeFuture = ctx.write(new ChunkedFile(raf, 0, length, 8192));
        if (!isKeepAlive(request)) {
            writeFuture.addListener(CLOSE);
        }
    }
}

From source file:org.ebayopensource.scc.cache.CacheResultVerifierTest.java

License:Apache License

@Test
public void testFetchResult() {
    FullHttpResponse cache = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK,
            ByteBufAllocator.DEFAULT.buffer());
    FullHttpResponse actual = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK,
            ByteBufAllocator.DEFAULT.buffer());
    CacheResultVerifier crv = new CacheResultVerifier("key", null, cache);

    HttpHeaders.setHeader(cache, "ETag", "etagvalue");
    HttpHeaders.setHeader(actual, "ETag", "etagvalue");

    CacheVerifiedResult result = crv.fetchResult(actual);
    Assert.assertTrue(result.result);/*from www  .  j av a2 s  . com*/

    HttpHeaders.setHeader(actual, "ETag", "etagvalue2");
    result = crv.fetchResult(actual);
    Assert.assertFalse(result.result);

    cache = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK,
            ByteBufAllocator.DEFAULT.buffer());
    actual = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK,
            ByteBufAllocator.DEFAULT.buffer());
    crv = new CacheResultVerifier("key", null, cache);

    actual.setStatus(HttpResponseStatus.SERVICE_UNAVAILABLE);
    result = crv.fetchResult(actual);
    Assert.assertFalse(result.result);
    actual.setStatus(HttpResponseStatus.OK);

    HttpHeaders.setHeader(cache, "h1", "value");
    HttpHeaders.setHeader(actual, "h1", "value");
    result = crv.fetchResult(actual);
    Assert.assertTrue(result.result);

    HttpHeaders.setHeader(cache, "h2", "value");
    HttpHeaders.setHeader(actual, "h2", "value2");
    result = crv.fetchResult(actual);
    Assert.assertFalse(result.result);
    HttpHeaders.setHeader(actual, "h2", "value");

    ByteBuf cc = cache.content();
    ByteBuf ac = actual.content();

    cc.writeBytes("abc".getBytes());
    result = crv.fetchResult(actual);
    Assert.assertFalse(result.result);

    ac.writeBytes("abc".getBytes());
    result = crv.fetchResult(actual);
    Assert.assertTrue(result.result);

    cc.writeBytes("eft".getBytes());
    ac.writeBytes("xyz".getBytes());
    result = crv.fetchResult(actual);
    Assert.assertFalse(result.result);

}

From source file:org.ebayopensource.scc.filter.NettyRequestProxyFilter.java

License:Apache License

protected HttpResponse handleNonProxyRequest(FullHttpRequest req) {
    String uri = req.getUri();// w ww . j  av a  2  s .  c  o  m
    if ("/version".equals(uri)) {
        if (HttpMethod.GET.equals(req.getMethod())) {
            JsonObject jsonObj = new JsonObject();
            jsonObj.addProperty("name", m_appConfig.getAppName());
            jsonObj.addProperty("version", m_appConfig.getAppVersion());
            byte[] content = jsonObj.toString().getBytes(CharsetUtil.UTF_8);
            DefaultFullHttpResponse resp = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
                    HttpResponseStatus.OK, Unpooled.copiedBuffer(content));
            HttpHeaders.setKeepAlive(resp, false);
            HttpHeaders.setHeader(resp, HttpHeaders.Names.CONTENT_TYPE, "application/json");
            HttpHeaders.setContentLength(resp, content.length);
            return resp;
        }
    }

    return RESPONSE_404;
}

From source file:org.hawkular.metrics.clients.ptrans.backend.RestForwardingHandler.java

License:Apache License

private void sendToChannel(final Channel ch) {
    LOG.trace("Sending to channel {}", ch);

    final List<SingleMetric> metricsToSend = fifo.getList();

    String payload = Batcher.metricListToJson(metricsToSend);
    ByteBuf content = Unpooled.copiedBuffer(payload, CharsetUtil.UTF_8);
    FullHttpRequest request = new DefaultFullHttpRequest(HTTP_1_1, POST, restPrefix, content);
    HttpHeaders.setContentLength(request, content.readableBytes());
    HttpHeaders.setKeepAlive(request, true);
    HttpHeaders.setHeader(request, HttpHeaders.Names.CONTENT_TYPE, "application/json;charset=utf-8");
    // We need to send the list of metrics we are sending down the pipeline, so the status watcher
    // can later clean them out of the fifo
    ch.attr(listKey).set(metricsToSend);
    ch.writeAndFlush(request).addListener(new ChannelFutureListener() {
        @Override// www  . j a v  a  2s  .  c om
        public void operationComplete(ChannelFuture future) throws Exception {
            if (!future.isSuccess()) {
                // and remove from connection pool if you have one etc...
                ch.close();
                senderChannel = null;
                LOG.error("Sending to the hawkular-metrics server failed: " + future.cause());

            } else {
                sendCounter++;
                if (sendCounter >= restCloseAfterRequests) {
                    SingleMetric perfMetric = new SingleMetric(localHostName + ".ptrans.counter",
                            System.currentTimeMillis(), (double) (numberOfMetrics + metricsToSend.size()));
                    fifo.offer(perfMetric);
                    LOG.trace("Doing a periodic close after {} requests and {} items", restCloseAfterRequests,
                            numberOfMetrics);
                    numberOfMetrics = 0;
                    ch.close();
                    senderChannel = null;
                    sendCounter = 0;
                }
            }
        }
    });
}

From source file:org.ireland.jnetty.http.HttpServletResponseImpl.java

License:Open Source License

@Override
public void setHeader(String name, String value) {
    if (name == null || name.length() == 0 || value == null) {
        return;/*  w  w  w  .j a  v a 2  s .  com*/
    }

    if (isCommitted()) {
        return;
    }

    // Ignore any call from an included servlet
    if (isIncluding()) {
        return;
    }

    char cc = name.charAt(0);
    if (cc == 'C' || cc == 'c') {

        if (HttpHeaders.Names.CONTENT_TYPE.equalsIgnoreCase(name))
            setContentType(value);
        else {
            if (HttpHeaders.Names.CONTENT_LENGTH.equalsIgnoreCase(name)) {
                if (value == null)
                    _contentLength = -1;
                else
                    _contentLength = Long.parseLong(value);
            }
        }

    }

    // what about setCookie?

    HttpHeaders.setHeader(response, name, value);
}

From source file:org.ireland.jnetty.http.HttpServletResponseImpl.java

License:Open Source License

@Override
// OK/*w ww  .j ava2 s  . co m*/
public void setIntHeader(String name, int value) {
    if (name == null || name.length() == 0) {
        return;
    }

    if (isCommitted()) {
        return;
    }

    // Ignore any call from an included servlet
    if (isIncluding()) {
        return;
    }

    char cc = name.charAt(0);
    if (cc == 'C' || cc == 'c') {
        if (HttpHeaders.Names.CONTENT_LENGTH.equalsIgnoreCase(name)) {
            if (value < 0)
                _contentLength = -1l;
            else
                _contentLength = value;
        }
    }

    HttpHeaders.setHeader(response, name, value);
}

From source file:org.robotbrains.support.web.server.netty.NettyStaticContentHandler.java

License:Apache License

/**
 * Set the MIME type of the content, if we can.
 *
 * @param filepath//  w w w .j av a  2s  .  c o  m
 *          the filepath for the content
 * @param response
 *          the HTTP response
 */
private void setMimeType(String filepath, HttpResponse response) {
    if (mimeResolver != null) {
        String mimeType = mimeResolver.resolve(filepath);
        if (mimeType != null) {
            HttpHeaders.setHeader(response, HttpHeaders.Names.CONTENT_TYPE, mimeType);
        }
    }
}

From source file:org.robotbrains.support.web.server.netty.NettyWebServerHandler.java

License:Apache License

/**
 * Send an error to the remote machine.//from w w  w  .  j  a va 2  s .  com
 *
 * @param ctx
 *          handler context
 * @param status
 *          the status to send
 */
public void sendError(ChannelHandlerContext ctx, HttpResponseStatus status) {
    FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, status,
            Unpooled.copiedBuffer("Failure: " + status.toString() + "\r\n", CharsetUtil.UTF_8));
    HttpHeaders.setHeader(response, CONTENT_TYPE, "text/plain; charset=UTF-8");
    setContentLength(response, response.content().readableBytes());

    ctx.channel().write(response).addListener(ChannelFutureListener.CLOSE);
}

From source file:snow.http.server.ResourceHttpHandler.java

License:Open Source License

private void sendURL(final ChannelHandlerContext ctx, final FullHttpRequest request, final String uri,
        final InputStream is) 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 {
    byte[] buff = IOUtils.toByteArray(is);
    final long length = buff.length;
    HttpHelper.setDate(response);//from   www . j  a  va 2 s .  co  m
    //            HttpHelper.setLastModified(response, modified);
    HttpHeaders.setContentLength(response, length);
    HttpHeaders.setHeader(response, CONTENT_TYPE, mimeType((new File(uri)).toPath()));
    setHeader(response, CACHE_CONTROL, cache);

    //            boolean isKeep = isKeepAlive(request);
    //            if (isKeep) {
    //                setHeader(response, CONNECTION, KEEP_ALIVE);
    //            }

    //            ChannelFuture writeFuture = ctx.writeAndFlush(new ChunkedFile(raf, 0, length, 8192));

    response.content().writeBytes(buff);

    sendHttpResponse(ctx, request, response);

    //            }
    //        }
}