.route(r -> r.put("/201", (req, res) -> res.addHeader("Content-Length", "0") .status(HttpResponseStatus.CREATED) .sendHeaders()) .put("/204", (req, res) -> res.status(HttpResponseStatus.NO_CONTENT) .sendHeaders()) .get("/200", (req, res) -> res.addHeader("Content-Length", "0") .sendHeaders())) .bindNow();
("Content-Length", "0") .status(HttpResponseStatus.CREATED) .sendHeaders()) .get("/204", (req, res) -> res.status (HttpResponseStatus.NO_CONTENT) .sendHeaders()) .get("/200", (req, res) -> res.addHeader("Content-Length", "0") .sendHeaders())) .bindNow();
@Test public void testDeferredHeader() { DisposableServer context = HttpServer.create() .host("localhost") .route(r -> r.get("/201", (req, res) -> res.addHeader ("Content-Length", "0") .status(HttpResponseStatus.CREATED) .sendHeaders())) .bindNow(); createHttpClientForContextWithAddress(context) .headersWhen(h -> Mono.just(h.set("test", "test")).delayElement(Duration.ofSeconds(2))) .observe((c, s) -> System.out.println(s + "" + c)) .get() .uri("/201") .responseContent() .repeat(4) .blockLast(); context.disposeNow(); }
@Test public void testCookie() { DisposableServer context = HttpServer.create() .host("localhost") .route(r -> r.get("/201", (req, res) -> res.addHeader("test", req.cookies() .get("test") .stream() .findFirst() .get() .value()) .status(HttpResponseStatus.CREATED) .sendHeaders())) .bindNow(); createHttpClientForContextWithAddress(context) .cookie("test", c -> c.setValue("lol")) .get() .uri("/201") .responseContent() .blockLast(); context.disposeNow(); }
}) .route(req -> req.uri().startsWith("/4"), (req, res) -> res.sendHeaders()) .route(req -> req.uri().startsWith("/5"), (req, res) -> res.chunkedTransfer(false) .sendHeaders()) .route(req -> req.uri().startsWith("/6"), (req, res) -> { res.responseHeaders().set("Content-Length", 2); return res.sendHeaders(); }) .route(req -> req.uri().startsWith("/7"),
private void doTestPublisherSenderOnCompleteFlushInProgress(boolean useScheduler) { DisposableServer server = HttpServer.create() .port(0) .handle((req, res) -> req.receive() .asString() .doOnNext(System.err::println) .then(res.status(200).sendHeaders().then())) .wiretap(true) .bindNow(Duration.ofSeconds(30)); Flux<String> flux = Flux.range(1, 257).map(count -> count + ""); if (useScheduler) { flux.publishOn(Schedulers.single()); } Mono<Integer> code = HttpClient.create() .port(server.address().getPort()) .wiretap(true) .post() .uri("/") .send(ByteBufFlux.fromString(flux)) .responseSingle((res, buf) -> Mono.just(res.status().code())) .log(); StepVerifier.create(code) .expectNextMatches(c -> c == 200) .expectComplete() .verify(Duration.ofSeconds(30)); server.disposeNow(); }
.port(0) .route( routes -> routes.post("/login", (req, res) -> res.status(serverStatus).sendHeaders()) .get("/ws", (req, res) -> { int token = Integer.parseInt(req.requestHeaders().get("Authorization"));
@Test public void nonContentStatusCodes() { DisposableServer server = HttpServer.create() .port(0) .host("localhost") .route(r -> r.get("/204-1", (req, res) -> res.status(HttpResponseStatus.NO_CONTENT) .sendHeaders()) .get("/204-2", (req, res) -> res.status(HttpResponseStatus.NO_CONTENT)) .get("/205-1", (req, res) -> res.status(HttpResponseStatus.RESET_CONTENT) .sendHeaders()) .get("/205-2", (req, res) -> res.status(HttpResponseStatus.RESET_CONTENT)) .get("/304-1", (req, res) -> res.status(HttpResponseStatus.NOT_MODIFIED) .sendHeaders()) .get("/304-2", (req, res) -> res.status(HttpResponseStatus.NOT_MODIFIED)) .get("/304-3", (req, res) -> res.status(HttpResponseStatus.NOT_MODIFIED) .send())) .wiretap(true) .bindNow(); checkResponse("/204-1", server.address()); checkResponse("/204-2", server.address()); checkResponse("/205-1", server.address()); checkResponse("/205-2", server.address()); checkResponse("/304-1", server.address()); checkResponse("/304-2", server.address()); checkResponse("/304-3", server.address()); server.disposeNow(); }
.wiretap(true) .handle((req, res) -> res.sendHeaders().sendString(Flux.just("test", "test", "test", "test"))) .bindNow();