Spring MockMvc在使用多部分表单数据时不打印正文
我有一个上传图像的测试,正常工作。它使用SpringMockMVC通过多部分表单数据上传文件Spring MockMvc在使用多部分表单数据时不打印正文,spring,mockmvc,Spring,Mockmvc,我有一个上传图像的测试,正常工作。它使用SpringMockMVC通过多部分表单数据上传文件 MockMultipartFile multiPartFile = new MockMultipartFile("icon", svgPath.toFile().getName(), "image/svg+xml", Files.newInputStream(svgPath)); MvcResult result = mo
MockMultipartFile multiPartFile = new MockMultipartFile("icon", svgPath.toFile().getName(), "image/svg+xml",
Files.newInputStream(svgPath));
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.multipart(URL_PATH + "/" + NOTIFICATION_ID + "/icon")
.file(multiPartFile)
.header(HttpHeaders.AUTHORIZATION, AUTH_VALUE)
.contentType(MediaType.MULTIPART_FORM_DATA_VALUE)
.characterEncoding(StandardCharset.UTF_8.name()))
.andExpect(status().isOk())
.andDo(print())
.andReturn();
我正在使用和do(print())打印表单内容以进行调试,但跟踪始终显示Body=null,请参见以下内容:
MockHttpServletRequest:
HTTP Method = POST
Request URI = /api/v1/user-notifications/12345/icon
Parameters = {}
Headers = [Content-Type:"multipart/form-data;charset=UTF-8", Authorization:"Bearer dummy_token"]
Body = null
Session Attrs = {}
注意:在本例中,我发送了一个基于文本的文件,因此我希望看到与chrome developer tools中打印的内容类似的正文:
------WebKitFormBoundaryaBPL5fSeLQR85CnY
Content-Disposition: form-data; name="icon"; filename="blob"
Content-Type: image/svg+xml
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" height="24"
width="24">
<path fill="........"></path>
</svg>
------WebKitFormBoundaryaBPL5fSeLQR85CnY--
----WebKitFormBoundaryaBPL5fSeLQR85CnY
内容配置:表单数据;name=“icon”;filename=“blob”
内容类型:image/svg+xml
------WebKitFormBoundaryaBPL5fSeLQR85CnY--
我原以为.characterEncoding(StandardCharset.UTF_8.name())可以完成这项工作,但没有帮助。我错过什么了吗?或者在Spring MockMvc中不支持这种功能