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)
问题
我有一个带有签名的控制器
@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)