2016-07-04 40 views
2

我試圖在我的休息服務上發送文件。我正在使用apache httpcomponents 4.3. 它可以工作,但它使用大約600 MB。總是,如果文件200 KB15 GB它使用Ram的600 MB使用httpcomponents發佈文件。內存有問題

如果我刪除addPart - 內存正常。

那麼,爲什麼文件發送得到這麼多的內存?

這是我的代碼

  HttpClientBuilder clientBuilder = HttpClientBuilder.create(); 

      CloseableHttpClient client = clientBuilder.build(); 

      HttpPost post = new HttpPost(url); 

      MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 
      builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 

      builder.addTextBody("jsonData", gson.toJson(dto)); 
      builder.addPart("file", new FileBody(file, ContentType.APPLICATION_OCTET_STREAM)); 

      post.setEntity(builder.build()); 
      HttpResponse response = client.execute(post); 

回答

1

對於較舊的阿帕奇httpcomponents,有報道HttpMultipartMode.BROWSER_COMPATIBLEissue沒有工作。看起來它並不固定。

嘗試將其更改爲:

​​
+0

謝謝你的答案。我試過這個,但它沒有解決問題。 – Andrew