2017-03-13 47 views
1

我想使用Apache HttpAsyncClient庫作爲multipart表單的一部分上傳260k圖像文件。使用Apache Http異步客戶端上傳帶有多部分POST請求的文件

創建我的形式是這樣的:

val multipartEntityBuilder = new MultipartEntityBuilder 
multipartEntityBuilder.addBinaryBody("file", file) 
val multipartEntity = multipartEntityBuilder.build() 

然後我基本上這條線在庫的源代碼,因爲執行請求時收到一個ContentTooLongException: https://github.com/apache/httpclient/blob/4.5.3/httpmime/src/main/java/org/apache/http/entity/mime/MultipartFormEntity.java#L102

我搜索了很多,但沒有找到任何解釋爲什麼contentLength的這個限制存在於代碼中。也許有人可以解釋它?我的第二個問題是:對大於25 kb的文件進行上傳請求的正確方法是什麼?

謝謝!

回答

2

找到了解決方案:創建的inputStream以上文件和與BufferedHttpEntity包裹所述多實體,然後通過此緩衝的實體請求:

val multipartEntityBuilder = MultipartEntityBuilder.create() 
multipartEntityBuilder.addBinaryBody("file", new FileInputStream(file), ContentType.DEFAULT_BINARY, name) 
val multipartEntity = multipartEntityBuilder.build() 
val entity = new BufferedHttpEntity(multipartEntity) 
相關問題