我想开发一个以XML作为输入的休息服务并返回要下载的CSV文件 - 不是作为文本而是作为要下载的附件,因此在浏览器中会出现下载文件对话框。
我设法返回一个带有GET请求的文件,但没有使用POST请求。我正在使用Jersey 1.18和tomcat(tomee 1.6)
@POST
@Path("csv")
@Produces({ MediaType.APPLICATION_OCTET_STREAM })
@Consumes({ MediaType.TEXT_XML })
public Response asCsv(JaxbObject aQuery) throws IOException {
String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance()
.getTime());
File logFile = new File(timeLog);
BufferedWriter buffer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
logFile), "UTF-8"));
int seq = 1;
buffer.append(results);
buffer.close();
ResponseBuilder response = Response.ok((Object) logFile);
response.header("Content-Disposition", "attachment; filename=\""+timeLog+".txt\"");
return response.build();
}