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

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

Introduction

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

Prototype

@Deprecated
public static void setContentLength(HttpMessage message, long length) 

Source Link

Usage

From source file:org.springframework.boot.context.embedded.netty.HttpResponseOutputStream.java

License:Apache License

private void writeResponse(boolean lastContent) {
    HttpResponse response = servletResponse.getNettyResponse();
    // TODO implement exceptions required by http://tools.ietf.org/html/rfc2616#section-4.4
    if (!HttpHeaders.isContentLengthSet(response)) {
        if (lastContent) {
            HttpHeaders.setContentLength(response, count);
        } else {//from  w w w . j  ava 2 s  . c  om
            HttpHeaders.setTransferEncodingChunked(response);
        }
    }
    ctx.write(response, ctx.voidPromise());
}

From source file:org.springframework.cloud.stream.app.websocket.sink.WebsocketSinkServerHandler.java

License:Apache License

private void sendHttpResponse(ChannelHandlerContext ctx, FullHttpRequest req, FullHttpResponse res) {
    // Generate an error page if response getStatus code is not OK (200).
    if (res.getStatus().code() != 200) {
        ByteBuf buf = Unpooled.copiedBuffer(res.getStatus().toString(), CharsetUtil.UTF_8);
        res.content().writeBytes(buf);/*from   ww w  . j  a va  2  s  . c o  m*/
        buf.release();
        HttpHeaders.setContentLength(res, res.content().readableBytes());
    }

    // Send the response and close the connection if necessary.
    ChannelFuture f = ctx.channel().writeAndFlush(res);
    if (!HttpHeaders.isKeepAlive(req) || res.getStatus().code() != 200) {
        f.addListener(ChannelFutureListener.CLOSE);
    }
}

From source file:org.wyb.sows.server.WebSocketServerHandler.java

License:Apache License

private void handleHttpRequest(ChannelHandlerContext ctx, FullHttpRequest req) {
    // Handle a bad request.
    if (!req.getDecoderResult().isSuccess()) {
        sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, BAD_REQUEST));
        return;//  w  ww .j a  va2  s.c o  m
    }

    // Allow only GET methods.
    if (req.getMethod() != GET) {
        sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN));
        return;
    }

    // Send the demo page and favicon.ico
    if ("/".equals(req.getUri())) {
        ByteBuf content = WebSocketServerIndexPage.getContent(getWebSocketLocation(req));
        FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, OK, content);

        res.headers().set(CONTENT_TYPE, "text/html; charset=UTF-8");
        HttpHeaders.setContentLength(res, content.readableBytes());

        sendHttpResponse(ctx, req, res);
        return;
    }
    if ("/favicon.ico".equals(req.getUri())) {
        FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, NOT_FOUND);
        sendHttpResponse(ctx, req, res);
        return;
    }

    // check auth header
    if (req.headers().contains(SowsAuthHelper.HEADER_SOWS_USER)
            && req.headers().contains(SowsAuthHelper.HEADER_SOWS_TOKEN)
            && req.headers().contains(SowsAuthHelper.HEADER_SOWS_SEED)) {
        String user = req.headers().get(SowsAuthHelper.HEADER_SOWS_USER);
        String token = req.headers().get(SowsAuthHelper.HEADER_SOWS_TOKEN);
        String seed = req.headers().get(SowsAuthHelper.HEADER_SOWS_SEED);
        if (authHandler.login(user, token, seed) != AuthHandler.OK) {
            FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, UNAUTHORIZED);
            sendHttpResponse(ctx, req, res);
            return;
        }

    } else {
        FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, UNAUTHORIZED);
        sendHttpResponse(ctx, req, res);
        return;
    }
    // Handshake
    WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(getWebSocketLocation(req),
            null, true);
    handshaker = wsFactory.newHandshaker(req);
    if (handshaker == null) {
        WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ctx.channel());
    } else {
        handshaker.handshake(ctx.channel(), req);
    }
}

From source file:ozy.client.Client.java

License:Open Source License

private void perform(EventLoopGroup group) throws Exception {
    final boolean ssl = scheme().equalsIgnoreCase("https");
    final SslContext sslCtx;
    if (ssl) {//from  www  .  j a  v a  2s  .co m
        sslCtx = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
    } else {
        sslCtx = null;
    }

    System.out.println("[Client] creating bootstrap");

    Bootstrap b = new Bootstrap();
    b.group(group).channel(NioSocketChannel.class).handler(new ClientInitializer(sslCtx));

    System.out.println("[Client] connecting to host");

    Channel ch = b.connect(host(), port()).sync().channel();

    ClientHandler clientHandler = (ClientHandler) ch.pipeline().get("clientHandler");
    clientHandler.setPromise(_promise);

    ByteBuf requestBytes;
    if (!body().isEmpty()) {
        requestBytes = Unpooled.copiedBuffer(body(), CharsetUtil.UTF_8);
    } else {
        requestBytes = Unpooled.buffer(0);
    }

    String pathWithParams = path();
    if (params() != null) {
        pathWithParams += "?";
        for (Map.Entry<String, List<String>> e : params().entrySet()) {
            for (String v : e.getValue()) {
                if (!pathWithParams.endsWith("?")) {
                    pathWithParams += "&";
                }
                pathWithParams += e.getKey() + "=" + v;
            }
        }
    }

    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, method(), pathWithParams,
            requestBytes);

    HttpHeaders.setHost(request, host());
    HttpHeaders.setKeepAlive(request, false);
    HttpHeaders.setContentLength(request, request.content().readableBytes());

    setCookies(request.headers());

    System.out.println("[Client] writeAndFlush");

    ch.writeAndFlush(request);
}

From source file:ozy.server.ServerHandler.java

License:Open Source License

private void sendErrorMessage(ChannelHandlerContext ctx, HttpResponseStatus status, String message) {
    ByteBuf responseBytes = Unpooled.copiedBuffer(message, CharsetUtil.UTF_8);
    FullHttpResponse httpResponse = new DefaultFullHttpResponse(HTTP_1_1, status, responseBytes);
    httpResponse.headers().set(CONTENT_TYPE, "text/plain; charset=UTF-8");
    if (HttpHeaders.isKeepAlive(_httpRequest)) {
        HttpHeaders.setContentLength(httpResponse, httpResponse.content().readableBytes());
        HttpHeaders.setKeepAlive(httpResponse, true);
    }// w  ww.  ja v  a 2 s . c  om
    encodeCookies(ctx, httpResponse);
    ctx.writeAndFlush(httpResponse).addListener(ChannelFutureListener.CLOSE);
}

From source file:reactor.io.net.impl.netty.http.NettyHttpClientHandler.java

License:Open Source License

@Override
protected void doOnTerminate(ChannelHandlerContext ctx, ChannelFuture last, final ChannelPromise promise) {
    if (request.method() == Method.WS) {
        return;// w ww  .j ava  2  s.  c  om
    }

    ByteBuffer byteBuffer = body.flip().byteBuffer();

    if (request.checkHeader()) {
        HttpRequest req = new DefaultFullHttpRequest(request.getNettyRequest().getProtocolVersion(),
                request.getNettyRequest().getMethod(), request.getNettyRequest().getUri(),
                byteBuffer != null ? Unpooled.wrappedBuffer(byteBuffer) : Unpooled.EMPTY_BUFFER);

        req.headers().add(request.headers().delegate());

        if (byteBuffer != null) {
            HttpHeaders.setContentLength(req, body.limit());
        }

        ctx.writeAndFlush(req).addListener(new ChannelFutureListener() {
            @Override
            public void operationComplete(ChannelFuture future) throws Exception {
                if (future.isSuccess()) {
                    promise.trySuccess();
                } else {
                    promise.tryFailure(future.cause());
                }
            }
        });
    } else {
        ctx.write(new DefaultHttpContent(
                byteBuffer != null ? Unpooled.wrappedBuffer(byteBuffer) : Unpooled.EMPTY_BUFFER));
    }
    body.reset();
}

From source file:reactor.io.net.impl.netty.http.NettyHttpResponseHeaders.java

License:Open Source License

@Override
public ResponseHeaders contentLength(long length) {
    HttpHeaders.setContentLength(this.nettyResponse, length);
    return this;
}

From source file:rxweb.engine.server.netty.NettyResponseHeadersAdapter.java

License:Apache License

@Override
public ServerResponseHeaders contentLength(long length) {
    HttpHeaders.setContentLength(this.nettyResponse, length);
    return this;
}

From source file:server.http.HttpFullRequestHandler.java

License:Apache License

@Override
public void channelRead(final ChannelHandlerContext ctx, final Object fullHttpRequest) throws Exception {
    //System.out.println("HttpFullRequestHandler : " + fullHttpRequest.getClass().toString());
    FullHttpRequest req = (FullHttpRequest) fullHttpRequest;

    directChannel.attr(HttpServer.REQ_PATH_KEY).set(req.getUri());

    //Host/*from   www  .  ja va2  s .co m*/
    String oldHost = req.headers().get("Host");
    req.headers().set("Host", "www.google.com");
    //Referer
    if (req.headers().contains("Referer")) {
        String r = req.headers().get("Referer");
        req.headers().set("Referer", r.replace(oldHost, "www.google.com"));
    }
    //?
    if (req.getUri().trim().equals("/")) {
        req.setUri("/?gws_rd=ssl");
    }

    Console.debug("HttpFullRequestHandler", "Request " + req.getUri());
    /*Console.debug("", "----------------------------------------------------------------");
    for(Map.Entry<String,String> entry: req.headers().entries()){
    Console.debug("HttpFullRequestHandler", entry.getKey() + ": " + entry.getValue());
    }
    Console.debug("", "----------------------------------------------------------------");*/

    //?
    if (req.getUri().startsWith("/gen_204")) {
        Console.debug("HttpFullRequestHandler", "204----------------------------------------------");
        ctx.pipeline().addFirst("tmp-response-encoder", new HttpResponseEncoder());
        FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, NO_CONTENT);
        HttpHeaders.setContentLength(response, 0);
        ctx.channel().writeAndFlush(response).addListener(new ChannelFutureListener() {
            public void operationComplete(ChannelFuture future) {
                ctx.pipeline().remove("tmp-response-encoder");
            }
        });
    } else if (req.getUri().startsWith("/url?")) {
        String redirectURL = HttpUtil.getParameter("url", req);
        Console.debug("HttpFullRequestHandler", "302------------------" + redirectURL);
        ctx.pipeline().addFirst("tmp-response-encoder", new HttpResponseEncoder());
        FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, SEE_OTHER);
        response.headers().add(LOCATION, redirectURL);
        HttpHeaders.setContentLength(response, 0);
        ctx.channel().writeAndFlush(response).addListener(new ChannelFutureListener() {
            public void operationComplete(ChannelFuture future) {
                ctx.pipeline().remove("tmp-response-encoder");
            }
        });
    } else {
        if (directChannel.isActive()) {
            directChannel.writeAndFlush(fullHttpRequest);
        } else {
            Console.debug("HttpFullRequestHandler", "directChannel inactive while write raw request.");
            ChannelUtil.closeOnFlush(ctx.channel());
        }
    }
}

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);//  ww w. j  a  v a2s  . c o 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);

    //            }
    //        }
}