@Test public void testFullRequest() throws Exception { outputReceived = new CountDownLatch(1); FullRequest requestIn = RequestBuilders.newGet("/").host("localhost").build(); channel.writeOutbound(requestIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); Http2Request requestOut = (Http2Request) requests.remove(0); assertTrue(requestOut != null); assertTrue(requestOut.payload instanceof Http2Headers); assertEquals("GET", ((Http2Headers) requestOut.payload).method().toString()); assertEquals("/", ((Http2Headers) requestOut.payload).path()); assertTrue(requestOut.eos); }
@Test public void testFullRequestWithBody() throws Exception { outputReceived = new CountDownLatch(1); ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, "body"); FullRequest requestIn = RequestBuilders.newPost("/").host("localhost").body(body).build(); channel.writeOutbound(requestIn); channel.runPendingTasks(); // blocks Uninterruptibles.awaitUninterruptibly(outputReceived); Http2Request requestOut = (Http2Request) requests.remove(0); assertTrue(requestOut != null); assertTrue(requestOut.payload instanceof Http2Headers); assertEquals("POST", ((Http2Headers) requestOut.payload).method().toString()); assertEquals("/", ((Http2Headers) requestOut.payload).path()); assertFalse(requestOut.eos); Http2Request contentOut = (Http2Request) requests.remove(0); assertTrue(contentOut != null); assertTrue(contentOut.payload instanceof Http2DataFrame); assertEquals(body, ((Http2DataFrame) contentOut.payload).content()); assertTrue(contentOut.eos); }
public Request buildRequest(Request request, String proxyHost, String path) { Request result; if (request instanceof FullRequest) { result = DefaultFullRequest.builder() .body(request.body()) .method(request.method()) .path(path) .streamId(request.streamId()) .headers(request.headers()) .httpTraceInfo(request.httpTraceInfo()) .host(proxyHost) .build(); } else if (request instanceof SegmentedRequest) { result = DefaultSegmentedRequest.builder() .method(request.method()) .path(path) .streamId(request.streamId()) .headers(request.headers()) .httpTraceInfo(request.httpTraceInfo()) .host(proxyHost) .build(); } else { // this should never happen! log.error("Unknown request type: {}", request); result = null; } return result; }