private void writeFormDataIfNecessary(OperationRequest request, List<String> lines) { for (OperationRequestPart part : request.getParts()) { StringBuilder oneLine = new StringBuilder(); oneLine.append(String.format("'%s'", part.getName())); if (!StringUtils.hasText(part.getSubmittedFileName())) { // https://github.com/jkbrzt/httpie/issues/342 oneLine.append(String.format("@<(echo '%s')", part.getContentAsString())); } else { oneLine.append(String.format("@'%s'", part.getSubmittedFileName())); } lines.add(oneLine.toString()); } }
private void writePartsIfNecessary(OperationRequest request, List<String> lines) { for (OperationRequestPart part : request.getParts()) { StringBuilder oneLine = new StringBuilder(); oneLine.append(String.format("-F '%s=", part.getName())); if (!StringUtils.hasText(part.getSubmittedFileName())) { oneLine.append(part.getContentAsString()); } else { oneLine.append(String.format("@%s", part.getSubmittedFileName())); } if (part.getHeaders().getContentType() != null) { oneLine.append(";type="); oneLine.append(part.getHeaders().getContentType().toString()); } oneLine.append("'"); lines.add(oneLine.toString()); } }
private void writePart(OperationRequestPart part, PrintWriter writer) { writePart(part.getName(), part.getContentAsString(), part.getSubmittedFileName(), part.getHeaders().getContentType(), writer); }
@Test public void multipartWithByteArrayInputStreamBody() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .multiPart("foo", "foo.txt", new ByteArrayInputStream("foo".getBytes())); requestSpec.post(); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParts().iterator().next().getContentAsString()) .isEqualTo("foo"); }
@Test public void multipartWithFileBody() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .multiPart(new File("src/test/resources/body.txt")); requestSpec.post(); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParts().iterator().next().getContentAsString()) .isEqualTo("file"); }
@Test public void multipartWithStringBody() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .multiPart("control", "foo"); requestSpec.post(); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParts().iterator().next().getContentAsString()) .isEqualTo("foo"); }
@Test public void multipartWithByteArrayBody() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .multiPart("control", "file", "foo".getBytes()); requestSpec.post(); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParts().iterator().next().getContentAsString()) .isEqualTo("foo"); }
@Test public void multipartWithObjectBody() { RequestSpecification requestSpec = RestAssured.given().port(tomcat.getPort()) .multiPart("control", new ObjectBody("bar")); requestSpec.post(); OperationRequest request = this.factory .convert((FilterableRequestSpecification) requestSpec); assertThat(request.getParts().iterator().next().getContentAsString()) .isEqualTo("{\"foo\":\"bar\"}"); }