@Test public void canEncodeTheModifiedUrl() throws Exception { Url url = url("/search.do?foo=a%2Bb%3Dc").build(); Url newUrl = url.newBuilder().path("/v1/search").build(); assertThat(newUrl.encodedUri(), is("/v1/search?foo=a%2Bb%3Dc")); }
/** * 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; }
/** * Rewrites the URL of the request according to the rewrite rules. * * @param request a request * @return a rewritten request */ public LiveHttpRequest rewrite(LiveHttpRequest 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 canModifyAComponentOfTheUrl() { Url url = url("/somerandompath?withsomequery=noquery").build(); assertThat(url.newBuilder().path("/newpath").build(), is(url("/newpath?withsomequery=noquery").build())); }
@Test public void canDropThePath() throws Exception { Url fqUrl = url("/landing/de3445") .authority("example.com") .build(); Url newUrl = fqUrl.newBuilder() .dropHost() .build(); assertThat(newUrl.authority(), isAbsent()); assertThat(newUrl.toString(), is("/landing/de3445")); }