使用带有“Content-Disposition”标头的REST服务下载PDF文件

时间:2014-10-26 16:07:23

标签: java rest pdf

我尝试在自定义身份验证检查后从Java REST调用的响应中下载PDF文件。

我可以看到下载的文件,但它是空文件。

以下是我的代码段。

//Custom HTTPClient
HTTPAuthClient client = new HTTPAuthClient(url,username,password)
Request request = new Request(downloadURL); //I'm downloading file content of an URL.
Response response = client.executeGet(request);
String response1 = response.getResponseBody();
InputStream is = new ByteArrayInputStream(response.getBytes());
response.setContentType("Content-type",application/pdf); //here response is      //javax.servlet.HttpServletResponse
response.setHeader("Content-Disposition","attachment;filename="myfile.pdf");
IOUtils.copy(is,response.getOutPutStream());
response.flushBuffer();    

使用此代码我可以下载文件,但是当我打开文件并验证没有数据时。 作为响应主体的一部分,我也可以看到一些数据。

你能不能帮助我解决我犯错误的地方我尝试了很多选择,但没有找到解决方案。

1 个答案:

答案 0 :(得分:1)

如何使用设置内容类型

response.setContentType("Content-type",application/pdf);

如果此方法中只有一个可用的参数是字符串void setContentType(String type),那么您的方法应为:

response.setContentType("application/pdf");

Java Doc可以肯定。