2016-07-04 4 views
2

私は休憩サービスでファイルを送信しようとしています。私は使用していますapache httpcomponents 4.3. それは動作しますが、約600 MBを使用します。常にファイル200 KBまたは15 GBの場合は、RAMの600 MBを使用します。ファイルをhttpcomponentsでポストします。メモリに問題があります

addPartを削除した場合 - メモリは問題ありません。

だから、なぜファイルの送信に大量のメモリが必要ですか?

これは私のコードの古いApacheのhttpcomponentsについては

  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

で、動作していないHttpMultipartMode.BROWSER_COMPATIBLEissueを報告しています。それは修正されていないようだ。

は、それを変更してみてください:

​​
+0

答えをいただき、ありがとうございます。私はこれを試しましたが、問題を解決していません。 – Andrew

関連する問題