private void commitPromise( final HttpRequest promise, final AsyncPushProducer pushProducer) throws HttpException, IOException { context.setProtocolVersion(HttpVersion.HTTP_2); context.setAttribute(HttpCoreContext.HTTP_REQUEST, promise); httpProcessor.process(promise, null, context); final List<Header> headers = DefaultH2RequestConverter.INSTANCE.convert(promise); outputChannel.push(headers, pushProducer); connMetrics.incrementRequestCount(); }
private void commitResponse( final HttpResponse response, final EntityDetails responseEntityDetails) throws HttpException, IOException { if (responseCommitted.compareAndSet(false, true)) { context.setProtocolVersion(HttpVersion.HTTP_2); context.setAttribute(HttpCoreContext.HTTP_RESPONSE, response); httpProcessor.process(response, responseEntityDetails, context); final List<Header> headers = DefaultH2ResponseConverter.INSTANCE.convert(response); outputChannel.submit(headers, responseEntityDetails == null); connMetrics.incrementResponseCount(); if (responseEntityDetails == null) { responseState = MessageState.COMPLETE; } else { responseState = MessageState.BODY; pushProducer.produce(outputChannel); } } }
private void commitRequest(final HttpRequest request, final EntityDetails entityDetails) throws HttpException, IOException { if (requestCommitted.compareAndSet(false, true)) { context.setProtocolVersion(HttpVersion.HTTP_2); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request); httpProcessor.process(request, entityDetails, context); final List<Header> headers = DefaultH2RequestConverter.INSTANCE.convert(request); outputChannel.submit(headers, entityDetails == null); connMetrics.incrementRequestCount(); if (entityDetails == null) { requestState = MessageState.COMPLETE; } else { final Header h = request.getFirstHeader(HttpHeaders.EXPECT); final boolean expectContinue = h != null && "100-continue".equalsIgnoreCase(h.getValue()); if (expectContinue) { requestState = MessageState.ACK; } else { requestState = MessageState.BODY; exchangeHandler.produce(dataChannel); } } } else { throw new H2ConnectionException(H2Error.INTERNAL_ERROR, "Request already committed"); } }
for (int i = 0; i < workers.length; i++) { final HttpCoreContext context = HttpCoreContext.create(); context.setProtocolVersion(version); final BenchmarkWorker worker = new BenchmarkWorker( requester,
for (int i = 0; i < workers.length; i++) { final HttpCoreContext context = HttpCoreContext.create(); context.setProtocolVersion(version); final BenchmarkWorker worker = new BenchmarkWorker( requester,
context.setProtocolVersion(transportVersion);
context.setProtocolVersion(transportVersion);
@Override public void consumePromise(final List<Header> headers) throws HttpException, IOException { if (requestState == MessageState.HEADERS) { request = DefaultH2RequestConverter.INSTANCE.convert(headers); final AsyncPushConsumer handler; try { handler = pushHandlerFactory != null ? pushHandlerFactory.create(request, context) : null; } catch (final ProtocolException ex) { throw new H2StreamResetException(H2Error.PROTOCOL_ERROR, ex.getMessage()); } if (handler == null) { throw new H2StreamResetException(H2Error.REFUSED_STREAM, "Stream refused"); } exchangeHandler = handler; context.setProtocolVersion(HttpVersion.HTTP_2); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request); httpProcessor.process(request, null, context); connMetrics.incrementRequestCount(); this.requestState = MessageState.COMPLETE; } else { throw new H2ConnectionException(H2Error.PROTOCOL_ERROR, "Unexpected promise"); } }
throw new UnsupportedHttpVersionException(transportVersion); context.setProtocolVersion(transportVersion); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
throw new UnsupportedHttpVersionException(transportVersion); context.setProtocolVersion(transportVersion); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
context.setProtocolVersion(HttpVersion.HTTP_2); context.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
@Test public void testRequestExpectContinueHTTP10() throws Exception { final HttpCoreContext context = HttpCoreContext.create(); context.setProtocolVersion(HttpVersion.HTTP_1_0); final BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", "/"); final String s = "whatever"; final StringEntity entity = new StringEntity(s, StandardCharsets.US_ASCII); request.setEntity(entity); final RequestExpectContinue interceptor = new RequestExpectContinue(); interceptor.process(request, request.getEntity(), context); final Header header = request.getFirstHeader(HttpHeaders.EXPECT); Assert.assertNull(header); }