Łuk*_*ąży 5 java spring multipartform-data multipart rest-assured
我有@Controller这样的签名方法:
@PostMapping
@ResponseBody
public ResponseEntity<Result> uploadFileAndReturnJson(@RequestParam("file") MultipartFile file) {}
Run Code Online (Sandbox Code Playgroud)
我想构建多部分请求而无需物理创建任何文件.我尝试这样做:
private MultiPartSpecification getMultiPart() {
return new MultiPartSpecBuilder("111,222")
.mimeType(MimeTypeUtils.MULTIPART_FORM_DATA.toString())
.controlName("file")
.fileName("file")
.build();
}
Response response = RestAssured.given(this.spec)
.auth().basic("admin", "admin")
.multiPart(getMultiPart())
.when().post(URL);
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到了回复
所需的请求部分'文件'不存在
我试着看看RestAssured单元测试,看起来我正确地做到了.如果我尝试传递byte []或InputStream而不是String,则抛出异常:
无法使用不可重复的请求实体重试请求.
感谢帮助.
您的代码看起来不错,它应该与byte []一起使用。您可以MultiPartSpecBuilder(byte[] content)如下使用。
private MultiPartSpecification getMultiPart() {
return new MultiPartSpecBuilder("Test-Content-In-File".getBytes()).
fileName("book.txt").
controlName("file").
mimeType("text/plain").
build();
}
Run Code Online (Sandbox Code Playgroud)
关于byte []的错误的详细信息,请参见https://github.com/rest-assured/rest-assured/issues/507。根据此,您应该尝试使用如下抢占式基本身份验证。
.auth().preemptive.basic("admin", "admin")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4437 次 |
| 最近记录: |