に書き込むレガシー アプリケーションをOutputStream
持っています。このストリームの内容をファイルとしてサーブレットにアップロードしたいと考えています。JMeterを使用して、を使用するサーブレットをテストしましたが、commons-fileupload
問題なく動作します。
File
私は Apache HttpClient を使用しますが、出力ストリームだけでなく が必要です。ファイルをローカルに書き込むことができません。File
おそらくそれが機能する可能性のあるメモリ内実装があれば?
(以下)を使用してみましHttpURLConnection
たが、サーバーは「MalformedStreamException: ストリームが予期せず終了しました」と応答します。
URL url = new URL("http", "localhost", 8080, "/upload");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
String boundary = "---------------------------7d226f700d0";
connection.setRequestProperty("Content-Disposition", "form-data; name=\"file\"");
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary="+boundary);
connection.setRequestProperty("Accept", "application/json");
connection.setRequestMethod("POST");
connection.setChunkedStreamingMode(0);
connection.connect();
OutputStream out = connection.getOutputStream();
byte[] boundaryBytes =("--" + boundary + "\r\n").getBytes();
out.write(boundaryBytes);
//App writes to outputstream here
out.write("\r\n".getBytes());
out.write(("--"+boundary+"--").getBytes());
out.write("\r\n".getBytes());
out.flush();
out.close();
connection.disconnect();