public ContentTypeHeader getContentTypeHeader() { HttpHeader header = getHeader(ContentTypeHeader.KEY); if (header.isPresent()) { return new ContentTypeHeader(header.firstValue()); } return ContentTypeHeader.absent(); }
public static HttpUriRequest getHttpRequestFor(ResponseDefinition response) { final RequestMethod method = response.getOriginalRequest().getMethod(); final String url = response.getProxyUrl(); return HttpClientFactory.getHttpRequestFor(method, url); }
public static Builder like(Response response) { Builder responseBuilder = new Builder(); responseBuilder.status = response.getStatus(); responseBuilder.bodyStream = response.bodyStreamSource; responseBuilder.headers = response.getHeaders(); responseBuilder.configured = response.wasConfigured(); responseBuilder.fault = response.getFault(); responseBuilder.initialDelay = response.getInitialDelay(); responseBuilder.chunkedDribbleDelay = response.getChunkedDribbleDelay(); responseBuilder.fromProxy = response.isFromProxy(); return responseBuilder; }
public static LoggedResponse from(Response response) { return new LoggedResponse( response.getStatus(), response.getHeaders() == null || response.getHeaders().all().isEmpty() ? null : response.getHeaders(), response.getBody(), response.getFault() ); }
private byte[] bodyDecompressedIfRequired(Response response) { if (response.getHeaders().getHeader("Content-Encoding").containsValue("gzip")) { return Gzip.unGzip(response.getBody()); } return response.getBody(); }
@Override public Response render(ServeEvent serveEvent) { ResponseDefinition responseDefinition = serveEvent.getResponseDefinition(); return response() .status(responseDefinition.getStatus()) .headers(responseDefinition.getHeaders()) .body(responseDefinition.getByteBody()) .build(); } }
private byte[] bodyDecompressedIfRequired(LoggedResponse response) { if (response.getHeaders().getHeader(CONTENT_ENCODING).containsValue("gzip")) { return Gzip.unGzip(response.getBody()); } return response.getBody(); }
@Override public Response render(ServeEvent serveEvent) { ResponseDefinition responseDefinition = serveEvent.getResponseDefinition(); if (!responseDefinition.wasConfigured()) { return Response.notConfigured(); } Response response = buildResponse(serveEvent); return applyTransformations(responseDefinition.getOriginalRequest(), responseDefinition, response, responseTransformers); }
private static void addBodyIfPostPutOrPatch(HttpRequest httpRequest, ResponseDefinition response) throws UnsupportedEncodingException { Request originalRequest = response.getOriginalRequest(); if (originalRequest.getMethod().isOneOf(PUT, POST, PATCH)) { HttpEntityEnclosingRequest requestWithEntity = (HttpEntityEnclosingRequest) httpRequest; requestWithEntity.setEntity(buildEntityFrom(originalRequest)); } }
private Response buildResponse(ServeEvent serveEvent) { if (serveEvent.getResponseDefinition().isProxyResponse()) { return proxyResponseRenderer.render(serveEvent); } else { Response.Builder responseBuilder = renderDirectly(serveEvent); return responseBuilder.build(); } }
public boolean keyEquals(String candidateKey) { return CaseInsensitiveKey.from(candidateKey).equals(caseInsensitiveKey()); }
private String getMimeType(StubMapping mapping) { HttpHeaders responseHeaders = mapping.getResponse().getHeaders(); if (responseHeaders != null) { ContentTypeHeader contentTypeHeader = responseHeaders.getContentTypeHeader(); return contentTypeHeader != null ? contentTypeHeader.mimeTypePart() : null; } return null; }
private void addRandomDelayIfSpecifiedGloballyOrIn(DelayDistribution localDelayDistribution, DelayDistribution globalDelayDistribution) { DelayDistribution delayDistribution; if (localDelayDistribution != null) { delayDistribution = localDelayDistribution; } else { delayDistribution = globalDelayDistribution; } if (delayDistribution != null) { incrementInitialDelay(delayDistribution.sampleMillis()); } }
public static ResponseDefinition browserProxy(Request originalRequest) { final ResponseDefinition response = new ResponseDefinition(); response.browserProxyUrl = originalRequest.getAbsoluteUrl(); return response; }
public static HttpHeader httpHeader(CaseInsensitiveKey key, String... values) { return new HttpHeader(key.value(), values); }
@Override public ResponseDefinition execute(Admin admin, Request request, PathParams pathParams) { return ResponseDefinition.notFound(); } }
public Response build() { if (bodyBytes != null) { return new Response(status, statusMessage, bodyBytes, headers, configured, fault, initialDelay, chunkedDribbleDelay, fromProxy); } else if (bodyString != null) { return new Response(status, statusMessage, bodyString, headers, configured, fault, initialDelay, chunkedDribbleDelay, fromProxy); } else if (bodyStream != null) { return new Response(status, statusMessage, bodyStream, headers, configured, fault, initialDelay, chunkedDribbleDelay, fromProxy); } else { return new Response(status, statusMessage, new byte[0], headers, configured, fault, initialDelay, chunkedDribbleDelay, fromProxy); } } }
public ProxyResponseRenderer(ProxySettings proxySettings, KeyStoreSettings trustStoreSettings, boolean preserveHostHeader, String hostHeaderValue, GlobalSettingsHolder globalSettingsHolder) { this.globalSettingsHolder = globalSettingsHolder; client = HttpClientFactory.createClient(1000, 5 * MINUTES, proxySettings, trustStoreSettings); this.preserveHostHeader = preserveHostHeader; this.hostHeaderValue = hostHeaderValue; }