@Override public Set<String> getAllHeaderKeys() { return target.getAllHeaderKeys(); }
public static RequestTemplateModel from(final Request request) { RequestLine requestLine = RequestLine.fromRequest(request); Map<String, ListOrSingle<String>> adaptedHeaders = Maps.toMap(request.getAllHeaderKeys(), new Function<String, ListOrSingle<String>>() { @Override public ListOrSingle<String> apply(String input) { return ListOrSingle.of(request.header(input).values()); } }); Map<String, ListOrSingle<String>> adaptedCookies = Maps.transformValues(request.getCookies(), new Function<Cookie, ListOrSingle<String>>() { @Override public ListOrSingle<String> apply(Cookie cookie) { return ListOrSingle.of(cookie.getValues()); } }); return new RequestTemplateModel( requestLine, adaptedHeaders, adaptedCookies, request.getBodyAsString() ); }
private void addRequestHeaders(HttpRequest httpRequest, ResponseDefinition response) { Request originalRequest = response.getOriginalRequest(); for (String key: originalRequest.getAllHeaderKeys()) { if (headerShouldBeTransferred(key)) { if (!HOST_HEADER.equalsIgnoreCase(key) || preserveHostHeader) { List<String> values = originalRequest.header(key).values(); for (String value: values) { httpRequest.addHeader(key, value); } } else { if (hostHeaderValue != null) { httpRequest.addHeader(key, hostHeaderValue); } else if (response.getProxyBaseUrl() != null) { httpRequest.addHeader(key, URI.create(response.getProxyBaseUrl()).getAuthority()); } } } } if (response.getAdditionalProxyRequestHeaders() != null) { for (String key: response.getAdditionalProxyRequestHeaders().keys()) { httpRequest.setHeader(key, response.getAdditionalProxyRequestHeaders().getHeader(key).firstValue()); } } }