发布休息服务返回文件

时间:2014-07-03 06:08:56

标签: java rest jersey-1.0

我想开发一个以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();
}

0 个答案:

没有答案