rest API的CSV下载不起作用
我试图通过将数据写入响应输出流来下载csv。我已经将内容配置设置为text/csv、application/octet-stream、openxml、ms-excel.exe和accept-header。 还尝试了响应生成器通过tearrayoutputstream构建 甚至在本地创建了一个文件并尝试下载 但是,我在响应体中得到了csv响应。没有下载,没有下载提示。我正在使用RESTEASY JAXRrest API的CSV下载不起作用,rest,csv,response,resteasy,content-disposition,Rest,Csv,Response,Resteasy,Content Disposition,我试图通过将数据写入响应输出流来下载csv。我已经将内容配置设置为text/csv、application/octet-stream、openxml、ms-excel.exe和accept-header。 还尝试了响应生成器通过tearrayoutputstream构建 甚至在本地创建了一个文件并尝试下载 但是,我在响应体中得到了csv响应。没有下载,没有下载提示。我正在使用RESTEASY JAXR @POST @Path("/response") @Produces({"applicatio
@POST
@Path("/response")
@Produces({"application/vnd.ms-excel"})
@Consumes({MediaType.APPLICATION_JSON})
public void viewSomething(PolicyRequest input,@Context HttpServletResponse responseExcel){
try
{
List<List<String>> data= getData(something)
String filename = "sample.csv";
responseExcel.addHeader("Content-Disposition", "attachment;filename="+filename);
responseExcel.addHeader("Content-Type" ,"application/vnd.ms-excel");
OutputStreamWriter osw = new OutputStreamWriter(responseExcel.getOutputStream());
CSVWriter writer = new CSVWriter(osw);
for(List<String> rows : data){
String[] row = rows.toArray(new String[0]);
writer.writeNext(row);
}
writer.flush();
writer.close();
osw.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
@POST
@路径(“/response”)
@产生({“application/vnd.ms excel”})
@使用({MediaType.APPLICATION_JSON})
public void viewSomething(策略请求输入,@Context-httpservletresponseexcel){
尝试
{
List data=getData(某物)
字符串filename=“sample.csv”;
addHeader(“内容处置”、“附件;文件名=“+filename”);
responseExcel.addHeader(“内容类型”、“应用程序/vnd.ms excel”);
OutputStreamWriter osw=新的OutputStreamWriter(responseExcel.getOutputStream());
CSVWriter writer=新的CSVWriter(osw);
用于(列表行:数据){
String[]行=rows.toArray(新字符串[0]);
writer.writeNext(行);
}
writer.flush();
writer.close();
osw.close();
}
捕获(例外e)
{
e、 printStackTrace();
}
}
您返回了错误的内容类型标题:@products({“application/vnd.ms excel”})
它应该是@products({“text/csv”})
另外,显式设置标题应该是过时的,因为
@products
会为您执行此操作您返回了错误的内容类型标题:@products({“application/vnd.ms excel”})
它应该是@products({“text/csv”})
另外,显式设置头应该是过时的,因为@会为您生成