@Override public String path(HttpServerRequest request) { return request.path(); }
@Override public void start() throws Exception { // In reality it's highly recommend you use Vert.x-Web for applications like this. vertx.createHttpServer().requestHandler(req -> { String filename = null; if (req.path().equals("/")) { filename = "index.html"; } else if (req.path().equals("/page1.html")) { filename = "page1.html"; } else if (req.path().equals("/page2.html")) { filename = "page2.html"; } else { req.response().setStatusCode(404).end(); } if (filename != null) { req.response().sendFile(filename); } }).listen(8080); } }
@Override public void start(Future<Void> startFuture) { vertx.createHttpServer() .requestHandler(req -> { req.response() .putHeader("Content-Type", "plain/text") .end("Yo!"); logger.info("Handled a request on path {} from {}", req.path(), req.remoteAddress().host()); }) .listen(11981, ar -> { if (ar.succeeded()) { startFuture.complete(); } else { startFuture.fail(ar.cause()); } }); } }
.put("path", ctx.request().path());
.put("path", ctx.request().path());
@Override public void start() throws Exception { super.start(); HttpServer server = vertx.createHttpServer(); server.requestHandler(req -> { if (req.method() == HttpMethod.GET) { req.response().setChunked(true); if (req.path().equals("/products")) { vertx.eventBus().<String>send(SpringDemoVerticle.ALL_PRODUCTS_ADDRESS, "", result -> { if (result.succeeded()) { req.response().setStatusCode(200).write(result.result().body()).end(); } else { req.response().setStatusCode(500).write(result.cause().toString()).end(); } }); } else { req.response().setStatusCode(200).write("Hello from vert.x").end(); } } else { // We only support GET for now req.response().setStatusCode(405).end(); } }); server.listen(8080); } }
private void testURIAndPath(String uri, String path) { server.requestHandler(req -> { assertEquals(uri, req.uri()); assertEquals(path, req.path()); req.response().end(); }); server.listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, uri, resp -> testComplete()).end(); })); await(); }
private void testSimpleRequest(String uri, HttpMethod method, HttpClientRequest request, boolean absolute) { int index = uri.indexOf('?'); String query; String path; if (index == -1) { path = uri; query = null; } else { path = uri.substring(0, index); query = uri.substring(index + 1); } String resource = absolute && path.isEmpty() ? "/" + path : path; server.requestHandler(req -> { String expectedPath = req.method() == HttpMethod.CONNECT && req.version() == HttpVersion.HTTP_2 ? null : resource; String expectedQuery = req.method() == HttpMethod.CONNECT && req.version() == HttpVersion.HTTP_2 ? null : query; assertEquals(expectedPath, req.path()); assertEquals(method, req.method()); assertEquals(expectedQuery, req.query()); req.response().end(); }); server.listen(onSuccess(server -> request.end())); await(); }
int idx = Integer.parseInt(req.path().substring(1)); HttpServerResponse resp = req.response(); resumes.get(idx).thenAccept(v -> {
List<String> responses = new ArrayList<>(); server.requestHandler(req-> { responses.add(req.path()); req.response().end(); doneLatch.countDown();
@Test public void testWebsocketAbs() { SelfSignedCertificate certificate = SelfSignedCertificate.create(); HttpServerOptions serverOptions = new HttpServerOptions().setPort(HttpTestBase.DEFAULT_HTTPS_PORT) .setSsl(true) .setKeyCertOptions(certificate.keyCertOptions()); HttpClientOptions clientOptions = new HttpClientOptions() .setTrustAll(true) .setVerifyHost(false); client = vertx.createHttpClient(clientOptions); server = vertx.createHttpServer(serverOptions).requestHandler(request -> { if ("/test".equals(request.path())) { request.upgrade().close(); } else { request.response().end(); } }).listen(onSuccess(server -> { String url = "wss://" + clientOptions.getDefaultHost() + ":" + HttpTestBase.DEFAULT_HTTPS_PORT + "/test"; client.websocketAbs(url, null, null, null, ws -> { ws.closeHandler(v -> { testComplete(); }); }, null); })); await(); }
server.requestHandler(req -> { HttpServerResponse resp = req.response(); switch (req.path()) { case "/0": { vertx.setPeriodic(1, timerID -> {
private NetSocket getUpgradedNetSocket(HttpServerRequest req, String path) { assertEquals(path, req.path()); assertEquals("upgrade", req.headers().get("Connection")); NetSocket sock = req.netSocket(); String secHeader = req.headers().get("Sec-WebSocket-Key"); String tmp = secHeader + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; String encoded = sha1(tmp); sock.write("HTTP/1.1 101 Web Socket Protocol Handshake\r\n" + "Upgrade: WebSocket\r\n" + "Connection: upgrade\r\n" + "Sec-WebSocket-Accept: " + encoded + "\r\n" + "\r\n"); return sock; }
@Test public void testMaxWaitQueueSizeIsRespected() throws Exception { client.close(); client = vertx.createHttpClient(new HttpClientOptions().setDefaultHost(DEFAULT_HTTP_HOST).setDefaultPort(DEFAULT_HTTP_PORT) .setPipelining(false).setMaxWaitQueueSize(0).setMaxPoolSize(2)); waitFor(3); Set<String> expected = new HashSet<>(Arrays.asList("/1", "/2")); server.requestHandler(req -> { assertTrue(expected.contains(req.path())); complete(); }); startServer(); HttpClientRequest req1 = client.get("/1", onFailure(err -> { })); HttpClientRequest req2 = client.get("/2", onFailure(resp -> { })); HttpClientRequest req3 = client.get("/3", onFailure(t -> { assertTrue("Incorrect exception: " + t.getClass().getName(), t instanceof ConnectionPoolTooBusyException); complete(); })); req1.end(); req2.end(); req3.end(); await(); }
CompletableFuture<Void> resumeLatch = new CompletableFuture<>(); server.requestHandler(req -> { switch (req.path()) { case "/0": { req.pause();
server.requestHandler(req -> { if (req.method() == HttpMethod.POST) { assertEquals(req.path(), "/form"); req.response().setChunked(true); req.setExpectMultipart(true);
server.requestHandler(req -> { if (req.method() == HttpMethod.POST) { assertEquals(req.path(), "/form"); req.setExpectMultipart(true); req.uploadHandler(event -> event.handler(buffer -> {
@Override protected void __doRender() throws IOException, RenderingException { // ValueClosureBegin @ [5:1] __internal.aboutToExecutePosInTemplate(5, 1); __internal.renderValue(templates.main.template(title).__body(() -> { // PlainText @ [5:37] __internal.aboutToExecutePosInTemplate(5, 37); __internal.writeValue(PLAIN_TEXT_0_0); // ValueExpression @ [6:10] __internal.aboutToExecutePosInTemplate(6, 10); __internal.renderValue(name, false); // PlainText @ [6:15] __internal.aboutToExecutePosInTemplate(6, 15); __internal.writeValue(PLAIN_TEXT_1_0); // ValueExpression @ [8:20] __internal.aboutToExecutePosInTemplate(8, 20); __internal.renderValue(context.request().path(), false); // PlainText @ [8:45] __internal.aboutToExecutePosInTemplate(8, 45); __internal.writeValue(PLAIN_TEXT_2_0); // ValueClosureEnd @ [5:1] __internal.aboutToExecutePosInTemplate(5, 1); }), false); // value closure end @ [5:1] } }
assertEquals("https", req.scheme()); assertEquals(HttpMethod.GET, req.method()); assertEquals("/somepath", req.path()); assertEquals(DEFAULT_HTTPS_HOST_AND_PORT, req.host()); assertEquals("foo_request_value", req.getHeader("Foo_request"));