Netty实现简单HTTP服务器
来源:互联网 发布:k姐陈洁淘宝为什么火 编辑:程序博客网 时间:2024/05/20 09:22
Netty实现简单HTTP服务器
public class HttpServer {public static void main(String[] args) throws InterruptedException {EventLoopGroup bossGroup = new NioEventLoopGroup();EventLoopGroup workerGroup = new NioEventLoopGroup();try {ServerBootstrap b = new ServerBootstrap();b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {@Overridepublic void initChannel(SocketChannel ch) throws Exception {ChannelPipeline pipeline = ch.pipeline();pipeline.addLast(new HttpServerCodec());pipeline.addLast(new HttpServerHandler());}});ChannelFuture f = b.bind(8080).sync();f.channel().closeFuture().sync();} finally {workerGroup.shutdownGracefully();bossGroup.shutdownGracefully();}}}class HttpServerHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws UnsupportedEncodingException {if (msg instanceof HttpRequest) {// 请求,解码器将请求转换成HttpRequest对象HttpRequest request = (HttpRequest) msg;// 获取请求参数QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.uri());String name = "World";if(queryStringDecoder.parameters().get("name") != null) {name = queryStringDecoder.parameters().get("name").get(0);}// 响应HTMLString responseHtml = "<html><body>Hello, " + name + "</body></html>";byte[] responseBytes = responseHtml.getBytes("UTF-8");int contentLength = responseBytes.length;// 构造FullHttpResponse对象,FullHttpResponse包含message bodyFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.wrappedBuffer(responseBytes));response.headers().set("Content-Type", "text/html; charset=utf-8");response.headers().set("Content-Length", Integer.toString(contentLength));ctx.writeAndFlush(response);}}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {cause.printStackTrace();ctx.close();}}
阅读全文
0 0
- Netty实现简单HTTP服务器
- 用Netty实现的简单HTTP服务器
- 用Netty实现的简单HTTP服务器
- 用Netty实现的简单HTTP服务器
- netty实现http服务器
- Play框架的Netty Http服务器实现
- 网络编程知识(5)--用Netty实现的一个简单的HTTP服务器
- 简单HTTP服务器实现
- netty服务器搭建-http
- 使用Netty构建APP后台服务器实现http请求
- VC++实现简单HTTP服务器
- 实现简单的HTTP服务器
- HTTP服务器的简单实现
- HTTP服务器的简单实现
- c++实现简单http服务器
- Netty 实现HTTP文件服务器
- Netty 实现HTTP文件服务器
- Netty 实现HTTP文件服务器
- JNI 数组返回值问题记录
- 程序员实用网站集锦
- Linux操作系统下,通过系统调用和库函数分别实现对文件的拷贝
- 【HTML5】WebSocket和SSE
- Latex 数学公式
- Netty实现简单HTTP服务器
- firewall
- 线程间数据传输
- python处理json
- 请尝试接纳SELinux
- Docker run 命令实战
- 5、不一样的C++系列--函数重载
- 814C An impassioned circulation of affection
- java.nio.ByteBuffer中flip、rewind、clear方法的区别