2015-09-29 81 views
0

我有一個網絡應用程序。我在/src/main/resources/static/images/Head.png有一個PNG文件。Http請求。如何獲得png的名字? Spring Boot

我想對它做一個http請求來獲取這個PNG文件(localhost:8080/images/Head.png)。

ResponseEntity<byte[]> entity = new TestRestTemplate().getForEntity("http://localhost/images/Head.png", byte[].class);

而且我想知道這是什麼PNG文件的名稱。

我試着用一些代碼,但它不工作。

例如,使用entity.getHeaders().toString()我獲得:

Server=[Apache-Coyote/1.1], Last-Modified=[Mon, 28 Sep 2015 22:03:31 GMT], Content-Type=[image/png;charset=UTF-8], Content-Length=[442526], Date=[Tue, 29 Sep 2015 21:02:11 GMT]

但沒有名字的文件的信息。

我怎樣才能得到這個名稱文件?您可以查看我的代碼here

感謝

+0

我很困惑。您必須知道文件的名稱才能發送請求。爲什麼你需要在別處找到名字? –

+0

我想做一個測試,確認由http請求獲得的png文件是我應該收到的png文件。 例如,我做了另一個測試,確認獲得的文件是一個PNG文件: assertEquals(「錯誤的內容類型:\ n」,MediaType.valueOf(「image/png; charset = UTF-8」) ,entity.getHeaders()。getContentType());' –

+0

@SantiGil「我想做一個測試,確認通過http請求獲得的png文件是我應該收到的png文件。」爲什麼?除了告訴你你的Web服務器工作正常(多麼不尋常)或者沒有(在這種情況下你遇到了更大的問題)之外,這個服務的目的是什麼? –

回答

0

,除非你通過它通過在原始上傳額外的參數或頭不能得到的文件名。 HTTP不知道或關心文件系統和與之相關的任何事情。

+0

如何確保獲得的文件是我想要的png文件? –

+0

@SantiGil最簡單也是最可靠的方法是使用JavaScript生成圖像內容的哈希字符串,並將哈希上傳到服務器。然後將上傳的哈希與由服務器生成的相同圖像的哈希進行比較。如果它們匹配,則高度肯定地知道您正在處理相同的文件,因爲您正在比較實際的*內容*而不僅僅是文件名。 –

+0

難道我們不會有同樣的問題嗎?我怎樣才能確保散列上傳到服務器(後來我不得不請求),是我想要的散列? –

相關問題