【发布时间】:2013-12-22 19:57:25
【问题描述】:
当我从浏览器中调用以下 GET 方法时,我可以选择下载一个包含实际输出的文件和一个类似于
的无关行输出
"Actual output string"
{"h":{"threadLocalInstance":{"threadLocalHashCode":505377872},"immutableThreadLocalInstance":{"threadLocalHashCode":1132005157}}}
代码
@Context
UriInfo info;
@Context
HttpServletRequest request;
@Context
HttpServletResponse response;
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("xyz")
public HttpServletResponse pqr() throws IOException {
ABC abc = new ABC();
abc.setOutputStream(response.getOutputStream());
String fileName = abc.getFileName();
//fileName = "results.csv"
response.setContentType("text/csv");
response.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\"");
return response;
}
请求和响应对象是代理,包含与该无关行对应的对象。有人知道我怎样才能删除那条线吗? (如果我在“返回响应”之前执行 response.resetBuffer(),我会在文件中得到无关的行,这表明在返回后“响应”发生了一些事情。)
【问题讨论】:
-
在解决此问题之前,您可以返回ServletResponseWrapper 修复所有问题。原因?过滤器?
-
@joop 你能详细说明一下吗?