我正在开发一个需要通过REST-API查询本体的Web应用程序。 如果我通过浏览器调用API,它会打开一个弹出窗口"另存为"通过它我可以保存文件。 这是因为响应的标题包含:
Content-Disposition: attachment; filename = query-result.srx
问题是我想在不使用浏览器的情况下在我的网络应用程序中收到该文件。 web-app是用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
感谢所有回答我的人!
答案 0 :(得分:1)
我意识到错误发生在我使用REST API的查询中。所以我在Java中所做的操作是正确的。使用命令
httpResponse.getEntity().getContent()
即使在content-disposition中描述了此文件,您也可以获取返回的内容。
感谢@Julian Reschke