1. Apache HttpComponents CloseableHttpAsyncClient httpclient = HttpAsyncClients.custom() .setMaxConnPerRoute(20) .setMaxConnTotal(50) .build(); httpclient.start(); HttpGet request = new HttpGet("http://example.com"); httpclient.execute(request, new FutureCallback<HttpResponse>() { @Override public void completed(final HttpResponse response) { } @Override public void failed(final Exception ex) { } @Override public void cancelled() { } }); 2. AsyncHttpClient AsyncHttpClient client = asyncHttpClient(); BoundRequestBuilder requestBuilder = client.prepareGet("http://example.com"); ListenableFuture<Response> futureResponse = requestBuilder.execute(); futureResponse.addListener(() -> { try { Response response = futureResponse.get(); } }, executorService); 3. Netty NioEventLoopGroup group = new NioEventLoopGroup(); Bootstrap bootstrap = new Bootstrap() .group(group) .channel(NioSocketChannel.class) .handler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) { ch.pipeline().addLast(new HttpClientCodec()); ch.pipeline().addLast(new HttpObjectAggregator(1024 * 1024)); ch.pipeline().addLast(new ClientHandler()); } }); ChannelFuture future = bootstrap.connect("example.com", 80).sync(); URI uri = new URI("http://example.com"); FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri.getRawPath()); future.channel().writeAndFlush(request); future.channel().closeFuture().sync();


上一篇:
下一篇:
切换中文