private DecodedRequest(T content) { this.requestBuilder = newBuilder().body(content.toString()); this.content = content; }
private static HttpRequest addUserAgent(HttpRequest request, String userAgent) { return request.newBuilder() .addHeader(USER_AGENT, userAgent) .build(); }
@Test public void transformedBodyIsNewCopy() { HttpRequest request = get("/foo") .body("Original body", UTF_8) .build(); HttpRequest newRequest = request.newBuilder() .body("New body", UTF_8) .build(); assertThat(request.bodyAs(UTF_8), is("Original body")); assertThat(newRequest.bodyAs(UTF_8), is("New body")); }
/** * Rewrites the URL of the request according to the rewrite rules. * * @param request a request * @return a rewritten request */ public HttpRequest rewrite(HttpRequest request) { String path = request.path(); String newPath = newPath(path); if (!Objects.equals(newPath, path)) { Url newUrl = request.url().newBuilder().path(newPath).build(); return request.newBuilder() .url(newUrl) .build(); } return request; }
@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)); }
@Test public void createsRequestBuilderFromRequest() { HttpRequest originalRequest = get("/home") .cookies(requestCookie("fred", "blogs")) .header("some", "header") .build(); HttpRequest clonedRequest = originalRequest.newBuilder().build(); assertThat(clonedRequest.method(), is(originalRequest.method())); assertThat(clonedRequest.url(), is(originalRequest.url())); assertThat(clonedRequest.headers().toString(), is(originalRequest.headers().toString())); assertThat(clonedRequest.body(), is(originalRequest.body())); }
@Test public void newCookiesWithDuplicateNamesOverridePreviousOnes() { HttpRequest r1 = HttpRequest.get("/") .cookies(requestCookie("y", "y1")) .build(); HttpRequest r2 = r1.newBuilder().addCookies( requestCookie("y", "y2")) .build(); assertThat(r2.cookies(), containsInAnyOrder(requestCookie("y", "y2"))); }
@Test public void transformsRequest() { HttpRequest request = get("/foo") .header("remove", "remove") .build(); HttpRequest newRequest = request.newBuilder() .method(DELETE) .uri("/home") .header("remove", "notanymore") .build(); assertThat(newRequest.method(), is(DELETE)); assertThat(newRequest.url().path(), is("/home")); assertThat(newRequest.headers(), hasItem(header("remove", "notanymore"))); }
@Test public void canRemoveAHeader() { Object hdValue = "b"; HttpRequest request = get("/") .header("a", hdValue) .addHeader("c", hdValue) .build(); HttpRequest shouldRemoveHeader = request.newBuilder() .removeHeader("c") .build(); assertThat(shouldRemoveHeader.headers(), contains(header("a", "b"))); }
@Test public void removesCookies() { HttpRequest r1 = HttpRequest.get("/") .addCookies(requestCookie("x", "x1"), requestCookie("y", "y1")) .build(); HttpRequest r2 = r1.newBuilder() .removeCookies("x") .removeCookies("foo") // ensure that trying to remove a non-existent cookie does not cause Exception .build(); assertThat(r2.cookies(), contains(requestCookie("y", "y1"))); }