private HttpRequest(Builder builder) { this.id = builder.id != null ? builder.id : randomUUID(); this.clientAddress = builder.clientAddress; this.version = builder.version(); this.method = builder.method; this.url = builder.url; this.secure = builder.secure; this.headers = builder.headers().build(); this.body = builder.body(); this.cookies = ImmutableList.copyOf(builder.cookies); }
@Test public void canUseBuilderToSetRequestProperties() { HttpRequest request = patch("https://hotels.com") .version(HTTP_1_1) .id("id") .header("headerName", "a") .cookies(requestCookie("cfoo", "bar")) .build(); assertThat(request.toString(), is("HttpRequest{version=HTTP/1.1, method=PATCH, uri=https://hotels.com, " + "headers=[headerName=a, Cookie=cfoo=bar, Host=hotels.com], id=id}")); assertThat(request.headers("headerName"), is(singletonList("a"))); }
private Builder(HttpRequest request) { this.id = request.id; this.secure = request.secure; this.url = request.url; this.method = request.method; this.clientAddress = request.clientAddress; this.cookies = new ArrayList<>(request.cookies); body(request.body); headers(request.headers.newBuilder()); version(request.version); }
@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(); }
public Builder(com.hotels.styx.api.messages.FullHttpRequest request) { this.id = request.id(); this.secure = request.isSecure(); this.url = request.url(); this.method = HttpMethod.valueOf(request.method().name()); this.cookies = new ArrayList<>(request.cookies()); headers(request.headers().newBuilder()); version(HttpVersion.valueOf(request.version().toString())); }
@Test public void createsANewRequestWithSameVersionAsBefore() { HttpRequest v10Request = get("/foo/bar").version(HTTP_1_0).build(); HttpRequest newRequest = v10Request.newBuilder().uri("/blah/blah").build(); assertThat(newRequest.version(), is(HTTP_1_0)); }