List of usage examples for io.netty.handler.codec.http HttpHeaders setContentLength
@Deprecated public static void setContentLength(HttpMessage message, long length)
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); // } // } }