您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Spring MockMvc输入多部分/表单数据?

如何使用Spring MockMvc输入多部分/表单数据?

是的,有一种方法,而且也很简单!

我自己也遇到了同样的问题。尽管我不满意Sam Brannen的回答,但似乎Spring MVC现在支持PUT文件上传,因为我可以简单地使用Postman发出这样的请求(我使用的是Spring Boot 1.4.2)。因此,我一直在挖掘,发现唯一的问题是事实所MockMultipartHttpServletRequestBuilder返回mockmvcRequestBuilders.fileUpload()方法方法硬编码为“ POST”。然后我发现了with()方法

这使我想出了这个巧妙的小窍门,以强制MockMultipartHttpServletRequestBuilder无论如何都要使用“ PUT”方法

    Mockmultipartfile file = new Mockmultipartfile("data", "dummy.csv",
            "text/plain", "Some dataset...".getBytes());

    MockMultipartHttpServletRequestBuilder builder =
            mockmvcRequestBuilders.fileUpload("/test1/datasets/set1");
    builder.with(new RequestPostProcessor() {
        @Override
        public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) {
            request.setMethod("PUT");
            return request;
        }
    });
    mvc.perform(builder
            .file(file))
            .andExpect(status().ok());

奇迹般有效!

Java 2022/1/1 18:26:07 有393人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶