}); req.response().bodyEndHandler(v -> { assertEquals(content.length(), req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete();
@Test public void testResponseEndHandlersSendFile() throws Exception { waitFor(2); AtomicInteger cnt = new AtomicInteger(); String content = "iqdioqwdqwiojqwijdwqd"; File toSend = setupFile("somefile.txt", content); server.requestHandler(req -> { req.response().headersEndHandler(v -> { // Insert another header req.response().putHeader("extraheader", "wibble"); assertEquals(0, cnt.getAndIncrement()); }); req.response().bodyEndHandler(v -> { assertEquals(content.length(), req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete(); }); req.response().sendFile(toSend.getAbsolutePath()); }).listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", onSuccess(res -> { assertEquals(200, res.statusCode()); assertEquals("wibble", res.headers().get("extraheader")); res.bodyHandler(buff -> { assertEquals(Buffer.buffer(content), buff); complete(); }); })).end(); })); await(); }
@Test public void testResponseEndHandlers2() { waitFor(2); AtomicInteger cnt = new AtomicInteger(); String content = "blah"; server.requestHandler(req -> { req.response().headersEndHandler(v -> { // Insert another header req.response().putHeader("extraheader", "wibble"); assertEquals(0, cnt.getAndIncrement()); }); req.response().bodyEndHandler(v -> { assertEquals(content.length(), req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete(); }); req.response().end(content); }).listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", onSuccess(res -> { assertEquals(200, res.statusCode()); assertEquals("wibble", res.headers().get("extraheader")); res.bodyHandler(buff -> { assertEquals(Buffer.buffer(content), buff); complete(); }); })).end(); })); await(); }
@Test public void testResponseEndHandlers1() { waitFor(2); AtomicInteger cnt = new AtomicInteger(); server.requestHandler(req -> { req.response().headersEndHandler(v -> { // Insert another header req.response().putHeader("extraheader", "wibble"); assertEquals(0, cnt.getAndIncrement()); }); req.response().bodyEndHandler(v -> { assertEquals(0, req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete(); }); req.response().end(); }).listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", onSuccess(res -> { assertEquals(200, res.statusCode()); assertEquals("wibble", res.headers().get("extraheader")); complete(); })).end(); })); await(); }
expected.appendBuffer(last); resp.end(last); assertEquals(expected.toString().getBytes().length, resp.bytesWritten()); }); vertx.cancelTimer(timerID);
@Override public String getFormattedItem(AccessLogParam<RoutingContext> accessLogParam) { HttpServerResponse response = accessLogParam.getContextData().response(); if (null == response) { return zeroBytes; } long bytesWritten = response.bytesWritten(); return 0 == bytesWritten ? zeroBytes : String.valueOf(bytesWritten); }
contentLength = request.response().bytesWritten();
/** * @return the total number of bytes written for the body of the response. */ public long bytesWritten() { long ret = delegate.bytesWritten(); return ret; }
/** * @return the total number of bytes written for the body of the response. */ public long bytesWritten() { long ret = delegate.bytesWritten(); return ret; }
@Override public long bytesWritten() { return response.bytesWritten(); }
}); req.response().bodyEndHandler(v -> { assertEquals(content.length(), req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete();
@Test public void testResponseEndHandlers2() { waitFor(2); AtomicInteger cnt = new AtomicInteger(); String content = "blah"; server.requestHandler(req -> { req.response().headersEndHandler(v -> { // Insert another header req.response().putHeader("extraheader", "wibble"); assertEquals(0, cnt.getAndIncrement()); }); req.response().bodyEndHandler(v -> { assertEquals(content.length(), req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete(); }); req.response().end(content); }).listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", res -> { assertEquals(200, res.statusCode()); assertEquals("wibble", res.headers().get("extraheader")); res.bodyHandler(buff -> { assertEquals(Buffer.buffer(content), buff); complete(); }); }).end(); })); await(); }
expected.appendBuffer(last); resp.end(last); assertEquals(expected.toString().getBytes().length, resp.bytesWritten()); }); vertx.cancelTimer(timerID);
@Test public void testResponseEndHandlers1() { waitFor(2); AtomicInteger cnt = new AtomicInteger(); server.requestHandler(req -> { req.response().headersEndHandler(v -> { // Insert another header req.response().putHeader("extraheader", "wibble"); assertEquals(0, cnt.getAndIncrement()); }); req.response().bodyEndHandler(v -> { assertEquals(0, req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete(); }); req.response().end(); }).listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", res -> { assertEquals(200, res.statusCode()); assertEquals("wibble", res.headers().get("extraheader")); complete(); }).end(); })); await(); }
@Test public void testResponseEndHandlersSendFile() throws Exception { waitFor(2); AtomicInteger cnt = new AtomicInteger(); String content = "iqdioqwdqwiojqwijdwqd"; File toSend = setupFile("somefile.txt", content); server.requestHandler(req -> { req.response().headersEndHandler(v -> { // Insert another header req.response().putHeader("extraheader", "wibble"); assertEquals(0, cnt.getAndIncrement()); }); req.response().bodyEndHandler(v -> { assertEquals(content.length(), req.response().bytesWritten()); assertEquals(1, cnt.getAndIncrement()); complete(); }); req.response().sendFile(toSend.getAbsolutePath()); }).listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "/", res -> { assertEquals(200, res.statusCode()); assertEquals("wibble", res.headers().get("extraheader")); res.bodyHandler(buff -> { assertEquals(Buffer.buffer(content), buff); complete(); }); }).end(); })); await(); }
@Override public String getFormattedItem(AccessLogParam<RoutingContext> accessLogParam) { HttpServerResponse response = accessLogParam.getContextData().response(); if (null == response) { return zeroBytes; } long bytesWritten = response.bytesWritten(); return 0 == bytesWritten ? zeroBytes : String.valueOf(bytesWritten); }
public void log(RoutingContext context, long startTime) { long costTime = System.currentTimeMillis() - startTime; HttpMethod method = context.request().method(); String uri = context.request().uri(); HttpServerRequest request = context.request(); long contentLength = request.response().bytesWritten(); int status = request.response().getStatusCode(); String referrer = request.headers().get("referrer"); String userAgent = request.headers().get("user-agent"); String remoteIp = Requests.getIp(request); StringBuilder sb = new StringBuilder(1024); sb.append('[').append(costTime).append(']'); sb.append(' ').append('[').append(method).append(']'); sb.append(' ').append('[').append(uri).append(']'); sb.append(' ').append('[').append(status).append(']'); sb.append(' ').append('[').append(contentLength).append(']'); sb.append(' ').append('[').append(remoteIp).append(']'); sb.append(' ').append('[').append(userAgent).append(']'); sb.append(' ').append('[').append(referrer).append(']'); logger.info(sb.toString()); }
public void init() { LOG.info("Starting Vert.x Dispatcher at [{}:{}]", host, port); httpServer = vertx.createHttpServer(); router = Router.router(vertx); router.exceptionHandler(e -> LOG.error(e.getMessage(), e)); router.route().order(0).handler(bodyHandler.setBodyLimit(maxUploadSize)); router.route().last().handler(f -> { if (!f.response().ended() && f.response().bytesWritten() == 0) { f.response().end(ErrorMessages.buildJson(ErrorMessages.NOT_FOUND)); } }); CountDownLatch await = new CountDownLatch(1); httpServer.requestHandler(router::accept).listen(port, host, r -> await.countDown()); try { if (!await.await(30, TimeUnit.SECONDS)) { throw new RuntimeException("Failed to start Vert.x server!"); } } catch (Throwable t) { throw Exceptions.runtime(t); } isOpen = true; }
contentLength = request.response().bytesWritten();