@Override public Queue<FullHttpResponse> getResponses() { awaitResponses(TIMEOUT, TIMEOUT_UNITS); return responses; }
@Override public void sendRequest(FullHttpRequest request, SslContext sslContext, Channel channel) { int streamId = streamCounter.getAndAdd(2); HttpScheme scheme = sslContext != null ? HttpScheme.HTTPS : HttpScheme.HTTP; request.headers().add(HttpConversionUtil.ExtensionHeaderNames.SCHEME.text(), scheme.name()); request.headers().add(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), streamId); put(streamId, channel.write(request), channel.newPromise()); channel.flush(); } }
@Override public void initChannel(SocketChannel ch) throws Exception { final Http2Connection connection = new DefaultHttp2Connection(false); connectionHandler = new HttpToHttp2ConnectionHandlerBuilder() .frameListener(new DelegatingDecompressorFrameListener( connection, new InboundHttp2ToHttpAdapterBuilder(connection) .maxContentLength(maxContentLength) .propagateSettings(true) .build())) .frameLogger(logger) .connection(connection) .build(); responseHandler = new Http2ResponseHandler(); settingsHandler = new Http2SettingsHandler(ch.newPromise()); if (sslCtx != null) { configureSsl(ch); } else { configureClearText(ch); } }