@Override public HttpHeader header(String key) { List<String> values = styxRequest.headers(key); return httpHeader(key, values.toArray(new String[values.size()])); }
@Override public boolean containsHeader(String key) { return styxRequest.headers().contains(key); }
@Override public Set<String> getAllHeaderKeys() { return new HashSet<>(styxRequest.headers().names()); }
private void prepareRequest(HttpURLConnection connection, HttpRequest request) throws IOException { connection.setRequestMethod(request.method().name()); connection.setRequestProperty("Connection", "close"); connection.setDoInput(true); for (HttpHeader httpHeader : request.headers()) { connection.addRequestProperty(httpHeader.name(), httpHeader.value()); } }
@Override public HttpHeaders getHeaders() { List<HttpHeader> list = stream(styxRequest.headers().spliterator(), false) .map(styxHeader -> httpHeader(styxHeader.name(), styxHeader.value())) .collect(toList()); return new HttpHeaders(list); }
@VisibleForTesting static DefaultHttpRequest toNettyRequest(HttpRequest request) { DefaultHttpRequest nettyRequest = new DefaultHttpRequest(request.version(), request.method(), request.url().toString(), false); request.headers().forEach((name, value) -> nettyRequest.headers().add(name, value)); Cookie[] cookies = request.cookies().stream() .map(HttpRequestOperation::styxCookieToNettyCookie) .toArray(Cookie[]::new); if (cookies.length > 0) { nettyRequest.headers().set(COOKIE, ClientCookieEncoder.LAX.encode(cookies)); } return nettyRequest; }
Builder(HttpRequest request) { this.id = request.id(); this.method = request.method(); this.url = request.url(); this.version = request.version(); this.headers = request.headers().newBuilder(); this.body = request.body(); }
@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"))); }
@Test public void createsARequestWithDefaultValues() { HttpRequest request = get("/index").build(); assertThat(request.version(), is(HTTP_1_1)); assertThat(request.url().toString(), is("/index")); assertThat(request.path(), is("/index")); assertThat(request.id(), is(notNullValue())); assertThat(request.cookies(), is(emptyIterable())); assertThat(request.headers(), is(emptyIterable())); assertThat(request.headers("any"), is(emptyIterable())); assertThat(request.body().length, is(0)); assertThat(request.cookie("any"), isAbsent()); assertThat(request.header("any"), isAbsent()); assertThat(request.keepAlive(), is(true)); assertThat(request.method(), is(GET)); assertThat(request.queryParam("any"), isAbsent()); assertThat(request.queryParams("any"), is(emptyIterable())); }
Builder(HttpRequest request) { this.id = request.id(); this.method = request.method(); this.url = request.url(); this.version = request.version(); this.headers = request.headers().newBuilder(); this.body = new ByteStream(Flux.just(new Buffer(copiedBuffer(request.body())))); }
@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())); }
public Builder(HttpRequest request, byte[] body) { this.id = request.id(); this.method = httpMethod(request.method().name()); this.clientAddress = request.clientAddress(); this.url = request.url(); this.secure = request.isSecure(); this.version = httpVersion(request.version().toString()); this.headers = request.headers().newBuilder(); this.body = body; this.cookies = new ArrayList<>(request.cookies()); }
public Builder(HttpRequest request, Observable<ByteBuf> body) { this.id = request.id(); this.method = httpMethod(request.method().name()); this.clientAddress = request.clientAddress(); this.url = request.url(); this.secure = request.isSecure(); this.version = httpVersion(request.version().toString()); this.headers = request.headers().newBuilder(); this.body = body; this.cookies = new ArrayList<>(request.cookies()); }
@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 decodesToFullHttpRequest() throws Exception { LiveHttpRequest streamingRequest = post("/foo/bar", body("foo", "bar")) .version(HTTP_1_0) .header("HeaderName", "HeaderValue") .cookies(requestCookie("CookieName", "CookieValue")) .build(); HttpRequest full = Mono.from(streamingRequest.aggregate(0x1000)).block(); assertThat(full.method(), is(POST)); assertThat(full.url(), is(url("/foo/bar").build())); assertThat(full.version(), is(HTTP_1_0)); assertThat(full.headers(), containsInAnyOrder( header("HeaderName", "HeaderValue"), header("Cookie", "CookieName=CookieValue"))); assertThat(full.cookies(), contains(requestCookie("CookieName", "CookieValue"))); assertThat(full.body(), is(bytes("foobar"))); }
Builder(HttpRequest request) { this.id = request.id(); this.method = httpMethod(request.method().name()); this.clientAddress = request.clientAddress(); this.url = request.url(); this.secure = request.isSecure(); this.version = httpVersion(request.version().toString()); this.headers = request.headers().newBuilder(); this.body = request.body().content(); this.cookies = new ArrayList<>(request.cookies()); }
private static Info information(HttpRequest request, Origin origin, boolean longFormatEnabled) { Info info = new Info() .add("method", request.method()) .add("secure", request.isSecure()) .add("uri", request.url()) .add("origin", origin != null ? origin.hostAsString() : "N/A"); if (longFormatEnabled) { info.add("headers", request.headers()) .add("cookies", request.cookies()); } return info; }