public final class io.netty.example.http.snoop.HttpSnoopClient
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.netty.example.http.snoop.HttpSnoopClient
  super_class: java.lang.Object
{
  static final java.lang.String URL;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 43
            ldc "url"
            ldc "http://127.0.0.1:8080/"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putstatic io.netty.example.http.snoop.HttpSnoopClient.URL:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.example.http.snoop.HttpSnoopClient this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.netty.example.http.snoop.HttpSnoopClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/example/http/snoop/HttpSnoopClient;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=12, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 46
            new java.net.URI
            dup
            getstatic io.netty.example.http.snoop.HttpSnoopClient.URL:Ljava/lang/String;
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            astore 1 /* uri */
        start local 1 // java.net.URI uri
         1: .line 47
            aload 1 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            ifnonnull 2
            ldc "http"
            goto 3
      StackMap locals: java.net.URI
      StackMap stack:
         2: aload 1 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 2 /* scheme */
        start local 2 // java.lang.String scheme
         4: .line 48
            aload 1 /* uri */
            invokevirtual java.net.URI.getHost:()Ljava/lang/String;
            ifnonnull 5
            ldc "127.0.0.1"
            goto 6
      StackMap locals: java.lang.String
      StackMap stack:
         5: aload 1 /* uri */
            invokevirtual java.net.URI.getHost:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 3 /* host */
        start local 3 // java.lang.String host
         7: .line 49
            aload 1 /* uri */
            invokevirtual java.net.URI.getPort:()I
            istore 4 /* port */
        start local 4 // int port
         8: .line 50
            iload 4 /* port */
            iconst_m1
            if_icmpne 14
         9: .line 51
            ldc "http"
            aload 2 /* scheme */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 52
            bipush 80
            istore 4 /* port */
        11: .line 53
            goto 14
      StackMap locals: java.lang.String int
      StackMap stack:
        12: ldc "https"
            aload 2 /* scheme */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 14
        13: .line 54
            sipush 443
            istore 4 /* port */
        14: .line 58
      StackMap locals:
      StackMap stack:
            ldc "http"
            aload 2 /* scheme */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 17
            ldc "https"
            aload 2 /* scheme */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 17
        15: .line 59
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Only HTTP(S) is supported."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        16: .line 60
            return
        17: .line 64
      StackMap locals:
      StackMap stack:
            ldc "https"
            aload 2 /* scheme */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            istore 5 /* ssl */
        start local 5 // boolean ssl
        18: .line 66
            iload 5 /* ssl */
            ifeq 23
        19: .line 67
            invokestatic io.netty.handler.ssl.SslContextBuilder.forClient:()Lio/netty/handler/ssl/SslContextBuilder;
        20: .line 68
            getstatic io.netty.handler.ssl.util.InsecureTrustManagerFactory.INSTANCE:Ljavax/net/ssl/TrustManagerFactory;
            invokevirtual io.netty.handler.ssl.SslContextBuilder.trustManager:(Ljavax/net/ssl/TrustManagerFactory;)Lio/netty/handler/ssl/SslContextBuilder;
            invokevirtual io.netty.handler.ssl.SslContextBuilder.build:()Lio/netty/handler/ssl/SslContext;
        21: .line 67
            astore 6 /* sslCtx */
        start local 6 // io.netty.handler.ssl.SslContext sslCtx
        22: .line 69
            goto 24
        end local 6 // io.netty.handler.ssl.SslContext sslCtx
        23: .line 70
      StackMap locals: int
      StackMap stack:
            aconst_null
            astore 6 /* sslCtx */
        start local 6 // io.netty.handler.ssl.SslContext sslCtx
        24: .line 74
      StackMap locals: io.netty.handler.ssl.SslContext
      StackMap stack:
            new io.netty.channel.nio.NioEventLoopGroup
            dup
            invokespecial io.netty.channel.nio.NioEventLoopGroup.<init>:()V
            astore 7 /* group */
        start local 7 // io.netty.channel.EventLoopGroup group
        25: .line 76
            new io.netty.bootstrap.Bootstrap
            dup
            invokespecial io.netty.bootstrap.Bootstrap.<init>:()V
            astore 8 /* b */
        start local 8 // io.netty.bootstrap.Bootstrap b
        26: .line 77
            aload 8 /* b */
            aload 7 /* group */
            invokevirtual io.netty.bootstrap.Bootstrap.group:(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/AbstractBootstrap;
            checkcast io.netty.bootstrap.Bootstrap
        27: .line 78
            ldc Lio/netty/channel/socket/nio/NioSocketChannel;
            invokevirtual io.netty.bootstrap.Bootstrap.channel:(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
            checkcast io.netty.bootstrap.Bootstrap
        28: .line 79
            new io.netty.example.http.snoop.HttpSnoopClientInitializer
            dup
            aload 6 /* sslCtx */
            invokespecial io.netty.example.http.snoop.HttpSnoopClientInitializer.<init>:(Lio/netty/handler/ssl/SslContext;)V
            invokevirtual io.netty.bootstrap.Bootstrap.handler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/AbstractBootstrap;
            pop
        29: .line 82
            aload 8 /* b */
            aload 3 /* host */
            iload 4 /* port */
            invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
            invokeinterface io.netty.channel.ChannelFuture.sync:()Lio/netty/channel/ChannelFuture;
            invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
            astore 9 /* ch */
        start local 9 // io.netty.channel.Channel ch
        30: .line 85
            new io.netty.handler.codec.http.DefaultFullHttpRequest
            dup
        31: .line 86
            getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
            getstatic io.netty.handler.codec.http.HttpMethod.GET:Lio/netty/handler/codec/http/HttpMethod;
            aload 1 /* uri */
            invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
        32: .line 85
            invokespecial io.netty.handler.codec.http.DefaultFullHttpRequest.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpMethod;Ljava/lang/String;)V
            astore 10 /* request */
        start local 10 // io.netty.handler.codec.http.HttpRequest request
        33: .line 87
            aload 10 /* request */
            invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
            getstatic io.netty.handler.codec.http.HttpHeaderNames.HOST:Lio/netty/util/AsciiString;
            aload 3 /* host */
            invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
            pop
        34: .line 88
            aload 10 /* request */
            invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
            getstatic io.netty.handler.codec.http.HttpHeaderNames.CONNECTION:Lio/netty/util/AsciiString;
            getstatic io.netty.handler.codec.http.HttpHeaderValues.CLOSE:Lio/netty/util/AsciiString;
            invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
            pop
        35: .line 89
            aload 10 /* request */
            invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
            getstatic io.netty.handler.codec.http.HttpHeaderNames.ACCEPT_ENCODING:Lio/netty/util/AsciiString;
            getstatic io.netty.handler.codec.http.HttpHeaderValues.GZIP:Lio/netty/util/AsciiString;
            invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
            pop
        36: .line 92
            aload 10 /* request */
            invokeinterface io.netty.handler.codec.http.HttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
        37: .line 93
            getstatic io.netty.handler.codec.http.HttpHeaderNames.COOKIE:Lio/netty/util/AsciiString;
        38: .line 94
            getstatic io.netty.handler.codec.http.cookie.ClientCookieEncoder.STRICT:Lio/netty/handler/codec/http/cookie/ClientCookieEncoder;
            iconst_2
            anewarray io.netty.handler.codec.http.cookie.Cookie
            dup
            iconst_0
        39: .line 95
            new io.netty.handler.codec.http.cookie.DefaultCookie
            dup
            ldc "my-cookie"
            ldc "foo"
            invokespecial io.netty.handler.codec.http.cookie.DefaultCookie.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            aastore
            dup
            iconst_1
        40: .line 96
            new io.netty.handler.codec.http.cookie.DefaultCookie
            dup
            ldc "another-cookie"
            ldc "bar"
            invokespecial io.netty.handler.codec.http.cookie.DefaultCookie.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            aastore
        41: .line 94
            invokevirtual io.netty.handler.codec.http.cookie.ClientCookieEncoder.encode:([Lio/netty/handler/codec/http/cookie/Cookie;)Ljava/lang/String;
        42: .line 92
            invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/CharSequence;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
            pop
        43: .line 99
            aload 9 /* ch */
            aload 10 /* request */
            invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
            pop
        44: .line 102
            aload 9 /* ch */
            invokeinterface io.netty.channel.Channel.closeFuture:()Lio/netty/channel/ChannelFuture;
            invokeinterface io.netty.channel.ChannelFuture.sync:()Lio/netty/channel/ChannelFuture;
            pop
        end local 10 // io.netty.handler.codec.http.HttpRequest request
        end local 9 // io.netty.channel.Channel ch
        end local 8 // io.netty.bootstrap.Bootstrap b
        45: .line 103
            goto 49
      StackMap locals: java.lang.String[] java.net.URI java.lang.String java.lang.String int int io.netty.handler.ssl.SslContext io.netty.channel.EventLoopGroup
      StackMap stack: java.lang.Throwable
        46: astore 11
        47: .line 105
            aload 7 /* group */
            invokeinterface io.netty.channel.EventLoopGroup.shutdownGracefully:()Lio/netty/util/concurrent/Future;
            pop
        48: .line 106
            aload 11
            athrow
        49: .line 105
      StackMap locals:
      StackMap stack:
            aload 7 /* group */
            invokeinterface io.netty.channel.EventLoopGroup.shutdownGracefully:()Lio/netty/util/concurrent/Future;
            pop
        50: .line 107
            return
        end local 7 // io.netty.channel.EventLoopGroup group
        end local 6 // io.netty.handler.ssl.SslContext sslCtx
        end local 5 // boolean ssl
        end local 4 // int port
        end local 3 // java.lang.String host
        end local 2 // java.lang.String scheme
        end local 1 // java.net.URI uri
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   51     0     args  [Ljava/lang/String;
            1   51     1      uri  Ljava/net/URI;
            4   51     2   scheme  Ljava/lang/String;
            7   51     3     host  Ljava/lang/String;
            8   51     4     port  I
           18   51     5      ssl  Z
           22   23     6   sslCtx  Lio/netty/handler/ssl/SslContext;
           24   51     6   sslCtx  Lio/netty/handler/ssl/SslContext;
           25   51     7    group  Lio/netty/channel/EventLoopGroup;
           26   45     8        b  Lio/netty/bootstrap/Bootstrap;
           30   45     9       ch  Lio/netty/channel/Channel;
           33   45    10  request  Lio/netty/handler/codec/http/HttpRequest;
      Exception table:
        from    to  target  type
          25    46      46  any
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "HttpSnoopClient.java"