<dependency> <groupId>org.mock-server</groupId> <artifactId>mockserver-netty</artifactId> <version>5.11.2</version> <scope>test</scope> </dependency> <dependency> <groupId>com.github.kristofa</groupId> <artifactId>async-http-client-netty</artifactId> <version>1.9.40</version> </dependency> import org.mockserver.client.MockServerClient; import org.mockserver.integration.ClientAndServer; import org.mockserver.matchers.Times; import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; public class MockServerExample { public static void main(String[] args) { mockServerClient.when(HttpRequest.request().withMethod("GET").withPath("/api/data")) .respond(HttpResponse.response().withStatusCode(200).withBody("Mock response")); HttpResponse response = HttpClient.sendGetRequest("http://localhost:1080/api/data"); System.out.println("Response: " + response.getBodyAsString()); } } import io.netty.bootstrap.Bootstrap; import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioSocketChannel; public class ProxyNettyExample { public static void main(String[] args) { EventLoopGroup workerGroup = new NioEventLoopGroup(); try { Bootstrap bootstrap = new Bootstrap(); bootstrap.group(workerGroup) .channel(NioSocketChannel.class) .handler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new SimpleChannelInboundHandler<Object>() { @Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) { System.out.println(msg.toString()); ctx.writeAndFlush(Unpooled.copiedBuffer("Modified response".getBytes())); } }); } }); future.channel().writeAndFlush(Unpooled.copiedBuffer("GET /api/data HTTP/1.1\r Host: " + targetHost + "\r \r } catch (InterruptedException e) { e.printStackTrace(); } finally { workerGroup.shutdownGracefully(); } } }


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