【问题标题】:Read file of content-disposition with java用java读取内容配置文件
【发布时间】:2014-05-31 04:11:21
【问题描述】:

我正在开发一个需要通过 REST-API 查询本体的网络应用程序。 如果我通过浏览器调用 API,它会打开一个弹出窗口“另存为”,通过它我可以保存文件。 这是因为响应的头部包含:

Content-Disposition: attachment; filename = query-result.srx

问题是我想在不使用浏览器的情况下在我的网络应用程序中接收文件。 该网络应用程序是用 java 编写的,我使用 Apache HttpClient 进行发送和接收、HTTP 请求和响应:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(uri);
CloseableHttpResponse httpResponse = httpClient.execute(httpGet);

如果我尝试获取实体的内容:

httpResponse.getEntity().getContent()

它返回一个无用的值。

这是你可以用这个库做的事情,或者我应该使用另一个库。

我发现了另一个与我类似的问题,但没有人回答。

java-javascript-read-content-disposition-file-content

感谢所有回答我的人!

【问题讨论】:

  • 定义“无用价值”。
  • 如果我使用这个函数IOUtils.toString(httpResponse.getEntity().getContent(), "UTF-8"),返回的字符串是:BRTR
  • 你能获得 HTTP 跟踪吗?
  • 现在我找到了解决方案,但问题出在我发送给本体的查询中。因为我没有 10 名声望,所以我无法在下午 6 点 32 分回答我的问题。感谢您的关注。

标签: java http content-disposition


【解决方案1】:

我意识到错误出在我使用 REST API 的查询中。所以我用Java做的操作是正确的。用命令

httpResponse.getEntity().getContent() 

即使在 content-disposition 中描述了此文件,您也可以获取返回的内容。

感谢@Julian Reschke

【讨论】: