@Override public HttpHeaders getHeaders() { return target.getHeaders(); }
protected String formatRequest(Request request) { StringBuilder sb = new StringBuilder(); sb.append(request.getClientIp()) .append(" - ") .append(request.getMethod()) .append(" ") .append(request.getUrl()); if (request.isBrowserProxyRequest()) { sb.append(" (via browser proxy request)"); } sb.append("\n\n"); sb.append(request.getHeaders()); if (request.getBody() != null) { sb.append(request.getBodyAsString()).append("\n"); } return sb.toString(); }
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() ); }
/** * Builds a {@link Request} for the OpenAPI validator out of the * original {@link com.github.tomakehurst.wiremock.http.Request}. * * @param originalRequest the original {@link com.github.tomakehurst.wiremock.http.Request} */ @Nonnull public static Request of(@Nonnull final com.github.tomakehurst.wiremock.http.Request originalRequest) { requireNonNull(originalRequest, "An original request is required"); final URI uri = URI.create(originalRequest.getUrl()); final Map<String, QueryParameter> queryParameterMap = Urls.splitQuery(uri); final SimpleRequest.Builder builder = new SimpleRequest.Builder(originalRequest.getMethod().getName(), uri.getPath()) .withBody(originalRequest.getBodyAsString()); originalRequest.getHeaders().all().forEach(header -> builder.withHeader(header.key(), header.values())); queryParameterMap.forEach((key, value) -> builder.withQueryParam(key, value.values())); return builder.build(); } }
/** * If request body was JSON or XML, use "equalToJson" or "equalToXml" (respectively) in the RequestPattern so it's * easier to read. Otherwise, just use "equalTo" */ @Override public ContentPattern<?> forRequest(Request request) { final String mimeType = request.getHeaders().getContentTypeHeader().mimeTypePart(); if (mimeType != null) { if (mimeType.contains("json")) { return new EqualToJsonPattern(request.getBodyAsString(), ignoreArrayOrder, ignoreExtraElements); } else if (mimeType.contains("xml")) { return new EqualToXmlPattern(request.getBodyAsString()); } else if (mimeType.equals("multipart/form-data")) { // TODO: Need to add a matcher that can handle multipart data properly. For now, just always match return new AnythingPattern(); } else if (!determineIsTextFromMimeType(mimeType)) { return new BinaryEqualToPattern(request.getBody()); } } return new EqualToPattern(request.getBodyAsString(), caseInsensitive); } }
addHeaderSection(requestPattern.combineBasicAuthAndOtherHeaders(), request.getHeaders(), builder);
private RequestPattern buildRequestPatternFrom(Request request) { RequestPatternBuilder builder = newRequestPattern(request.getMethod(), urlEqualTo(request.getUrl())); if (!headersToMatch.isEmpty()) { for (HttpHeader header: request.getHeaders().all()) { if (headersToMatch.contains(header.caseInsensitiveKey())) { builder.withHeader(header.key(), equalTo(header.firstValue())); } } } if (request.isMultipart()) { for (Request.Part part : request.getParts()) { builder.withRequestBodyPart(valuePatternForPart(part)); } } else { String body = request.getBodyAsString(); if (!body.isEmpty()) { builder.withRequestBody(valuePatternForContentType(request)); } } return builder.build(); }