/** * Returns the value of the header with the specified {@code name}. * If there is more than one header value for the specified header name, the first value is returned. * * @return the value of the header with the specified {@code name} if present */ public Optional<String> header(CharSequence name) { return headers.get(name); }
/** * Returns the values of the headers with the specified {@code name}. * * @param name the name of the headers * @return A {@link List} of header values which will be empty if no values * are found */ public ImmutableList<String> headers(CharSequence name) { return headers.getAll(name); }
@Override public int hashCode() { return Objects.hash(toString()); }
@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; }
@Override public Set<String> getAllHeaderKeys() { return new HashSet<>(styxRequest.headers().names()); }
@Override public boolean containsHeader(String key) { return styxRequest.headers().contains(key); }
public HttpHeaders build() { return new HttpHeaders(this); } }
@VisibleForTesting static DefaultHttpRequest toNettyRequest(LiveHttpRequest request) { HttpVersion version = request.version(); HttpMethod method = request.method(); String url = request.url().toString(); DefaultHttpRequest nettyRequest = new DefaultHttpRequest(toNettyVersion(version), toNettyMethod(method), url, false); request.headers().forEach((name, value) -> nettyRequest.headers().add(name, value)); return nettyRequest; }
@Test public void returnsAllRegisteredHeaderNames() { assertThat(headers.names(), contains("header1", "header2")); }
public HttpHeaders build() { return new HttpHeaders(this); } }
/** * Returns the value of the header with the specified {@code name}. * If there is more than one header value for the specified header name, the first value is returned. * * @return the value of the header with the specified {@code name} if present */ public Optional<String> header(CharSequence name) { return headers.get(name); }
/** * Returns the values of the headers with the specified {@code name}. * * @param name the name of the headers * @return A {@link List} of header values which will be empty if no values * are found */ public ImmutableList<String> headers(CharSequence name) { return headers.getAll(name); }
@Override public int hashCode() { return Objects.hash(toString()); }
public HttpResponse toNettyResponse(LiveHttpResponse httpResponse) { io.netty.handler.codec.http.HttpVersion version = toNettyVersion(httpResponse.version()); HttpResponseStatus httpResponseStatus = HttpResponseStatus.valueOf(httpResponse.status().code()); DefaultHttpResponse nettyResponse = new DefaultHttpResponse(version, httpResponseStatus, false); httpResponse.headers().forEach(httpHeader -> nettyResponse.headers().add(httpHeader.name(), httpHeader.value())); return nettyResponse; }
@Test public void emptyHeadersHasEmptyNames() { HttpHeaders httpHeaders = new HttpHeaders.Builder().build(); assertThat(httpHeaders.names(), is(emptyIterable())); }
@Override public Optional<String> header(CharSequence name) { return headers.get(name); }
/** * @param name header name * @return all values for a given HTTP header name or an empty list if the header is not present */ @Override public List<String> headers(CharSequence name) { return headers.getAll(name); }
@Override public Optional<String> header(CharSequence name) { return headers.get(name); }