我需要寫這將能夠處理由捲曲發送的二進制數據,如應用程序:如何從Spring處理的POST請求中獲取原始二進制數據?
curl localhost:8080/data --data-binary @ZYSF15A46K1.txt
我創建一個POST處理方法如下:
@RequestMapping(method = RequestMethod.POST, value = "/data")
public void acceptData(HttpEntity<byte[]> requestEntity) throws Exception {
process(requestEntity.getBody());
}
然而,它似乎沒有返回原始的二進制數據。我試過發送一個GZip文件,經過Spring之後它現在可以解壓縮了,這讓我相信我要麼獲得太多的數據,要麼數據太少。
如何解決此問題並獲取原始二進制數據?
嘗試使用'HttpServletDequest'作爲控制器的輸入參數,並從其InputStream中讀取原始數據。 –
@GeminiKeith也嘗試過,因爲某些原因,它總是返回一個空對象。 –
你有沒有設置字符編碼?您可以檢查「Content-Length」以確保您獲得正確的請求。如果'Content-Length'有效,你可以從'InputStream'中以特定的長度讀取它。如果不是,請檢查您的請求。 –