请参阅包 io.netty.example.proxy 中的netty示例,它既适用于http又适用于https,甚至https消息都是乱码。
我想使用netty来执行从代理服务器获取的https消息。
public static void main(String[] args){
Bootstrap b;
EventLoopGroup workerGroup;
ChannelFuture f;
workerGroup = new NioEventLoopGroup();
b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.AUTO_READ, false);
b.handler(new HttpForwardHandler());
f = b.connect(ip, port);
}
public class HttpForwardHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelActive(ChannelHandlerContext ctx) {
String content = ""//datagram got from proxy
ByteBuf buf = Unpooled.wrappedBuffer(content .getBytes(Charset.defaultCharset()));
ctx.writeAndFlush(buf )
.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) {
if (future.isSuccess()) {
ctx.read();
} else {
future.channel().close();
}
}
});
}
@Override
public void channelRead(final ChannelHandlerContext ctx, Object msg) {
//can not get https response here
}
}
版本:网状-全4.1.9-最终
当我尝试writeAndFlush一条http消息时,它有效,但https消息没有。
答案 0 :(得分:0)
您应该检查写期货cause()
以了解它无效的原因。