Tôi có ứng dụng máy khách Java để tải tệp lên dịch vụ REST.Thanh tiến trình tải lên tệp bằng cách sử dụng RestTemplate.postForLocation
Tất cả các cuộc gọi tới dịch vụ REST được xử lý bằng lớp Spring RestTemplate.
Tôi đang tìm cách triển khai thanh tiến trình và hủy chức năng vì các tệp đang được tải lên có thể khá lớn.
Tôi đã tìm cách thực hiện điều này trên web nhưng không có may mắn.
Tôi đã thử triển khai ResourceHttpMessageConverter của riêng mình và thay thế phương thức writeInternal() nhưng phương pháp này dường như được gọi trong một số hoạt động đệm trước khi gửi yêu cầu (vì vậy luồng được đọc tất cả trong một lần trước khi gửi đi diễn ra).
Tôi thậm chí đã cố gắng ghi đè phương thức CommonsClientHttpRequestFactory.createRequest() và triển khai lớp RequestEntity của riêng tôi với phương thức writeRequest() đặc biệt nhưng cùng một vấn đề xảy ra (luồng được đọc trước khi gửi bài).
Tôi đang tìm kiếm địa điểm sai? Có ai đã làm một cái gì đó tương tự.
Rất nhiều thứ tôi đã đọc trên web về việc triển khai thanh tiến trình nói về việc bắt đầu tải lên và sau đó sử dụng các yêu cầu AJAX riêng để thăm dò ý kiến của máy chủ web.
Bất kỳ trợ giúp hoặc mẹo nào được đánh giá cao.
điều này có thể có những gì bạn đang tìm kiếm http://stackoverflow.com/questions/5294532/httpclient-upload-big-file-and-show-sent-bytes-number – ams
Cảm ơn bạn đã liên kết. Thật không may, ví dụ được đưa ra sử dụng các thư viện apache mức thấp vì vậy tôi không rõ ràng lớp tương đương của FileBody sẽ nằm trong thư viện Spring Rest, hoặc làm thế nào tôi có thể tiêm thực hiện của riêng tôi để chúng sử dụng. – glidester