@Override public CompletableFuture<LiveHttpResponse> send(HttpRequest request) { return sendRequestInternal(connectionFactory, request.stream(), transactionParameters).toFuture(); } };
@Override public CompletableFuture<LiveHttpResponse> send(HttpRequest request) { return StyxHttpClient.sendRequestInternal(connectionFactory, request.stream(), transactionParameters).toFuture(); } };
/** * Sends a request as {@link HttpRequest} object. * * @param request a {@link HttpRequest} object to be sent to remote origin. * @return a {@link CompletableFuture} of response */ public CompletableFuture<HttpResponse> send(HttpRequest request) { return sendRequestInternal(connectionFactory, request.stream(), this.transactionParameters) .flatMap(response -> Mono.from(response.aggregate(this.transactionParameters.maxResponseSize()))) .toFuture(); }
/** * Sends a request as {@link HttpRequest} object. * * @param request a {@link HttpRequest} object to be sent to remote origin. * @return a {@link CompletableFuture} of response */ @Override public CompletableFuture<HttpResponse> send(HttpRequest request) { return StyxHttpClient.sendRequestInternal(connectionFactory, request.stream(), transactionParameters) .flatMap(response -> Mono.from(response.aggregate(transactionParameters.maxResponseSize()))) .toFuture(); } }
@Test(dataProvider = "emptyBodyRequests") public void convertsToStreamingHttpRequestWithEmptyBody(HttpRequest fullRequest) { LiveHttpRequest streaming = fullRequest.stream(); StepVerifier.create(streaming.body()) .expectComplete() .verify(); }
@Test public void requestBodyCannotBeChangedViaStreamingRequest() { HttpRequest original = HttpRequest.get("/foo") .body("original", UTF_8) .build(); Flux.from(original.stream() .body() .map(buffer -> { buffer.delegate().array()[0] = 'A'; return buffer; })) .subscribe(); assertThat(original.bodyAs(UTF_8), is("original")); }
@Test public void convertsToStreamingHttpRequest() throws Exception { HttpRequest fullRequest = new HttpRequest.Builder(POST, "/foo/bar").body("foobar", UTF_8) .version(HTTP_1_1) .header("HeaderName", "HeaderValue") .cookies(requestCookie("CookieName", "CookieValue")) .build(); LiveHttpRequest streaming = fullRequest.stream(); assertThat(streaming.method(), is(HttpMethod.POST)); assertThat(streaming.url(), is(url("/foo/bar").build())); assertThat(streaming.version(), is(HTTP_1_1)); assertThat(streaming.headers(), containsInAnyOrder( header("Content-Length", "6"), header("HeaderName", "HeaderValue"), header("Cookie", "CookieName=CookieValue"))); assertThat(streaming.cookies(), contains(requestCookie("CookieName", "CookieValue"))); StepVerifier.create(streaming.aggregate(0x10000).map(it -> it.bodyAs(UTF_8))) .expectNext("foobar") .verifyComplete(); }