@Override public void handle(HttpContext context) { context.request() .timeout(configuration.getRequestTimeout()) .putHeader(HttpHeaders.ACCEPT, CONTENT_TYPE) .putHeader(HttpHeaders.ACCEPT_CHARSET, StandardCharsets.UTF_8.name()); // Basic authentication if (authorizationHeader != null) { context.request().putHeader(HttpHeaders.AUTHORIZATION, authorizationHeader); } context.next(); } });
private void testPhasesThread(BiFunction<Thread, Thread, List<Thread>> abc) { Thread testThread = Thread.currentThread(); List<Thread> phaseThreads = Collections.synchronizedList(new ArrayList<>()); client.addInterceptor(context -> { phaseThreads.add(Thread.currentThread()); context.next(); }); HttpRequest<Buffer> builder = client.get("/somepath"); builder.send(onSuccess(resp -> { Thread contextThread = Thread.currentThread(); assertEquals(abc.apply(testThread, contextThread), phaseThreads); complete(); })); }
private void cacheInterceptorHandler(HttpContext<?> context) { if (context.phase() == ClientPhase.PREPARE_REQUEST) { context.dispatchResponse(new HttpResponseImpl<>()); } else { context.next(); } }
private void handleMutateRequest(HttpContext context) { if (context.phase() == ClientPhase.PREPARE_REQUEST) { context.request().host("localhost"); context.request().port(8080); } context.next(); }
@Test public void testInterceptorsOrder() throws Exception { server.requestHandler(req -> req.response().setStatusCode(204).end()); startServer(); List<String> events = Collections.synchronizedList(new ArrayList<>()); client.addInterceptor(context -> { events.add(context.phase().name() + "_1"); context.next(); }); client.addInterceptor(context -> { events.add(context.phase().name() + "_2"); context.next(); }); HttpRequest<Buffer> builder = client.get("/somepath"); builder.send(onSuccess(resp -> { assertEquals(Arrays.asList( "PREPARE_REQUEST_1", "PREPARE_REQUEST_2", "SEND_REQUEST_1", "SEND_REQUEST_2", "RECEIVE_RESPONSE_1", "RECEIVE_RESPONSE_2", "DISPATCH_RESPONSE_1", "DISPATCH_RESPONSE_2"), events); complete(); })); await(); }
private void handleMutateCodec(HttpContext context) { if (context.phase() == ClientPhase.RECEIVE_RESPONSE) { if (context.clientResponse().statusCode() == 200) { context.request().as(BodyCodec.none()); } } context.next(); }
private void mutateResponseHandler(HttpContext context) { if (context.phase() == ClientPhase.DISPATCH_RESPONSE) { HttpResponse<?> resp = context.response(); assertEquals(500, resp.statusCode()); context.response(new HttpResponseImpl<Object>() { @Override public int statusCode() { return 200; } }); } context.next(); }
private <T> void handle(HttpContext<T> ctx, AtomicInteger reqCount, AtomicInteger respCount, int num) { if (ctx.phase() == ClientPhase.PREPARE_REQUEST) { reqCount.incrementAndGet(); } else if (ctx.phase() == ClientPhase.DISPATCH_RESPONSE) { respCount.incrementAndGet(); HttpResponse<?> resp = ctx.response(); if (resp.statusCode() == 503) { Integer count = ctx.get("retries"); if (count == null) { count = 0; } if (count < num) { ctx.set("retries", count + 1); ctx.prepareRequest(ctx.request(), ctx.contentType(), ctx.body()); return; } } } ctx.next(); }
break; ctx.next(); }); HttpRequest<Buffer> builder = client.get("/1").host("localhost").port(8080);
client.addInterceptor(ctx -> { phases.add(ctx.phase()); ctx.next(); }); HttpRequest<Buffer> builder = client.get("/").host("localhost").port(8080);