【发布时间】:2021-05-26 00:52:32
【问题描述】:
我有一个返回 pdf 发票的网络服务。客户端代码使用 HttpURLConnection 来使用服务。它在 InputStream 中读取发票,然后写入 OutputStream。所有这些都在起作用。现在需要选择多张发票并按下下载按钮。它应该连接选定的发票并作为一个可浏览的文档打开。
我已尝试使用如下所示的 SequenceInputStream,但它总是打开最后选择的发票。这是我的代码
for (int i=0; i < docIds.length; i++) {
URL url = new URL(baseurl + "/invoices/" + docIds[i]);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Authorization", Application.get("documentum", "Authorization"));
conn.setRequestProperty("Accept", "application/pdf");
conn.setConnectTimeout(20000);
conn.setReadTimeout(20000);
conn.connect();
if (!conn.getContentType().equalsIgnoreCase("application/pdf")) {
System.out.println("FAILED.\n[Sorry. This is not a PDF.]");
return false;
} else {
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "filename=fbau-doc.pdf");
outputStream = response.getOutputStream();
InputStream in = conn.getInputStream();
streams.add(in);
}
SequenceInputStream sequenceInputStream = new SequenceInputStream(streams.elements());
// clean up
IOUtils.copy(sequenceInputStream, outputStream);
outputStream.close();
【问题讨论】:
标签: java web-services inputstream