如何使用sparkjava框架处理multipart zip文件和json对象

时间:2016-05-10 09:16:03

标签: spark-java

我正在尝试使用SparkJava处理来自请求的 multipart zip 文件以及 json 对象,但是一旦我们使用它,请求就会变为空解析zip文件,但不能用于解析json对象。 有没有办法使用SparkJava完成此任务。

我正在以下面的方式处理zip文件

post("/agent/blueprint/create", (request, response) -> {
    String responseObject = null;
    if (request.raw().getAttribute("org.eclipse.jetty.multipartConfig") == null) {
        MultipartConfigElement multipartConfigElement = new MultipartConfigElement(System.getProperty("java.io.tmpdir"));
        request.raw().setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement);}
        Part file = request.raw().getPart("fileStream");
        if (file.getContentType().startsWith("application/octet-stream")) {
            Part uploadedFile = request.raw().getPart("fileStream");
            InputStream inputStream = uploadedFile.getInputStream();
            ZipInputStream zipInputStream = new ZipInputStream(inputStream);
            ZipEntry entry = null;
            while ((entry = zipInputStream.getNextEntry()) != null) {

            ...
            }
        }
    }
});

请求有两个部分,一个是zip文件,另一个是json对象 上面的代码处理附件,接下来当我尝试使用' request.body()'处理json对象时,请求似乎是空的。

1 个答案:

答案 0 :(得分:0)

我知道,这可以通过使用Collection来检索json对象并循环遍历

来实现
Collection<Part> parts = request.raw().getParts();
for (Part part : parts) {

并且对于zip文件部分使用

Part file = request.raw().getPart("fileStream");