RestAssured:分块文件上传而不是多部分

RestAssured: chunked file upload instead of multipart

问题

我有一个带有签名的控制器

@RequestMapping(path = "/upload/{imageTitle}", method = POST, produces = {APPLICATION_JSON_VALUE})
public ResponseEntity<EnrollFaceResult> uploadImage(@PathVariable String imageTitle, ServletInputStream imageDataStream) {
    // handle upload
}

现在我想使用 RestAssured:

测试逻辑
    given()
        .pathParam("imageTitle", "title")
        .multiPart(new File(getClass().getResource("image.jpg").toURI()))
    .when()
        .post("upload/{imageTitle}")
    .then()
        .statusCode(HttpServletResponse.SC_OK)

问题是imageDataStream.

里面没有数据

但是,当我执行 PostMan 请求时,流包含数据。

区别在于 PostMan 进行分块数据上传,而 RestAssured 创建多部分副本。

问题

有没有一种方法可以使用 RestAssured 而不是多部分上传分块上传 请求?


我会回答我自己的问题。

解决方案在RequestSpecification.body(File)中。肯定是之前忽略了方法

应更正测试片段,将 multipart(File) 替换为 body(File):

given()
    .pathParam("imageTitle", "title")
    .body(getClass().getResourceAsStream("image.jpg"))
.when()
    .post("upload/{imageTitle}")
.then()
    .statusCode(HttpServletResponse.SC_OK)