我正在尝试使用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对象时,请求似乎是空的。
答案 0 :(得分:0)
我知道,这可以通过使用Collection来检索json对象并循环遍历
来实现Collection<Part> parts = request.raw().getParts();
for (Part part : parts) {
并且对于zip文件部分使用
Part file = request.raw().getPart("fileStream");