我有一個Java桌面客戶端應用程序,將文件上傳到REST服務。使用RestTemplate.postForLocation文件上傳進度條
使用Spring RestTemplate類處理對REST服務的所有調用。
我期待實現進度條並取消功能,因爲上傳的文件可能相當大。
我一直在尋找一種方法來實現這個在網絡上,但沒有運氣。
我試着實現我自己的ResourceHttpMessageConverter並替換writeInternal()方法,但是在實際發佈請求之前似乎在某種緩衝操作期間調用了此方法(所以流在發送之前一次全部讀取)。我甚至嘗試覆蓋CommonsClientHttpRequestFactory.createRequest()方法並使用特殊的writeRequest()方法實現我自己的RequestEntity類,但同樣的問題發生(流在實際發送帖子之前全部被讀取)。
我看錯了地方?有沒有人做過類似的事情?
很多我在網上讀到的關於實現進度條的東西都是關於盯着上傳,然後使用單獨的AJAX請求來輪詢Web服務器的進度,這似乎是一種奇怪的方式。
任何幫助或建議非常感謝。
這可能有你在找什麼http://stackoverflow.com/questions/5294532/httpclient-upload-big-file-and-show-sent-bytes-number – ams
感謝您的鏈接。不幸的是,所給出的例子使用了低級別的apache庫,所以我不清楚Spring Rest庫中等效的FileBody類是什麼,或者我可以如何注入自己的實現以供它們使用。 – glidester