2014-04-16 60 views
0

我開發一個web應用程序,需要通過一個REST API來查詢本體。 如果我通過瀏覽器調用API,它會打開一個彈出的「另存爲」,通過它我可以保存文件。 這是因爲響應的頭包含:閱讀內容處置的文件用java

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

的問題是,我希望收到我的web應用程序中的文件,而無需使用瀏覽器。 的web應用是基於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

定義「無用值」。 –

+0

如果我用這個功能'IOUtils.toString(httpResponse.getEntity()的getContent(), 「UTF-8」)'返回的字符串是:'BRTR'。 –

+0

你能獲得一個HTTP跟蹤嗎? –

回答

1

我意識到錯誤是在我使用的REST API查詢。所以我在Java中所做的操作是正確的。使用命令

httpResponse.getEntity().getContent() 

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

感謝@Julian Reschke