private HttpHeaders withoutContentEncodingAndContentLength(HttpHeaders httpHeaders) { return new HttpHeaders(filter(httpHeaders.all(), new Predicate<HttpHeader>() { public boolean apply(HttpHeader header) { return !header.keyEquals("Content-Encoding") && !header.keyEquals("Content-Length"); } })); }
@Override public HttpHeader getHeader(String name) { return headers.getHeader(name); }
public HttpHeader getHeader(String key) { if (!headers.containsKey(caseInsensitive(key))) { return HttpHeader.absent(key); } Collection<String> values = headers.get(caseInsensitive(key)); return new HttpHeader(key, values); }
public HttpHeaders(HttpHeaders headers) { this(headers.all()); }
public static HttpHeaders noHeaders() { return new HttpHeaders(); }
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()); } } }
@Override public ContentTypeHeader contentTypeHeader() { if (headers != null) { return headers.getContentTypeHeader(); } return null; }
if (serveEvent.getWasMatched() && stubMapping != null) { headers = firstNonNull(headers, new HttpHeaders()) .plus(new HttpHeader("Matched-Stub-Id", stubMapping.getId().toString())); headers = headers.plus(new HttpHeader("Matched-Stub-Name", stubMapping.getName()));
private void writeToMappingAndBodyFile(Request request, Response response, RequestPattern requestPattern) { String fileId = idGenerator.generate(); byte[] body = bodyDecompressedIfRequired(response); String mappingFileName = UniqueFilenameGenerator.generate(request.getUrl(), "mapping", fileId); String bodyFileName = UniqueFilenameGenerator.generate( request.getUrl(), "body", fileId, ContentTypes.determineFileExtension( request.getUrl(), response.getHeaders().getContentTypeHeader(), body)); ResponseDefinitionBuilder responseDefinitionBuilder = responseDefinition() .withStatus(response.getStatus()) .withBodyFile(bodyFileName); if (response.getHeaders().size() > 0) { responseDefinitionBuilder.withHeaders(withoutContentEncodingAndContentLength(response.getHeaders())); } ResponseDefinition responseToWrite = responseDefinitionBuilder.build(); StubMapping mapping = new StubMapping(requestPattern, responseToWrite); mapping.setUuid(UUID.nameUUIDFromBytes(fileId.getBytes())); filesFileSource.writeBinaryFile(bodyFileName, body); mappingsFileSource.writeTextFile(mappingFileName, write(mapping)); }
public Builder headers(HttpHeaders headers) { this.headers = headers == null ? noHeaders() : headers; return this; }
@Override @JsonIgnore public Set<String> getAllHeaderKeys() { return headers.keys(); }
public static LoggedRequest createFrom(Request request) { return new LoggedRequest(request.getUrl(), request.getAbsoluteUrl(), request.getMethod(), request.getClientIp(), copyOf(request.getHeaders()), ImmutableMap.copyOf(request.getCookies()), request.isBrowserProxyRequest(), new Date(), request.getBody(), request.getParts() ); }
public ResponseDefinitionBuilder withHeaders(HttpHeaders headers) { this.headers = ImmutableList.copyOf(headers.all()); return this; }
@Override public HttpHeaders getHeaders() { return new HttpHeaders(); }
@JsonIgnore public String getMimeType() { return headers == null || headers.getContentTypeHeader() == null ? OCTET_STREAM.toString() : headers.getContentTypeHeader().mimeTypePart(); }
public static Response notConfigured() { return new Response( HTTP_NOT_FOUND, null, (byte[]) null, noHeaders(), false, null, 0, null, false); }
public HttpHeaders plus(HttpHeader... additionalHeaders) { return new HttpHeaders(ImmutableList.<HttpHeader>builder() .addAll(all()) .addAll(asList(additionalHeaders)) .build()); }
@Override public void serialize(HttpHeaders headers, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeStartObject(); for (HttpHeader header: headers.all()) { if (header.isSingleValued()) { jgen.writeStringField(header.key(), header.firstValue()); } else { jgen.writeArrayFieldStart(header.key()); for (String value: header.values()) { jgen.writeString(value); } jgen.writeEndArray(); } } jgen.writeEndObject(); } }
@Override public HttpHeader header(String key) { return headers.getHeader(key); }
public static HttpHeaders copyOf(HttpHeaders source) { return new HttpHeaders(source); }