Web サーバーは、ファイルが html フォーム経由でアップロードされることを想定しています。
これは、既に機能している MultipartEntity を構築する方法です。
FileBody filePart = new FileBody(new File("emptyFile.txt"), "text/plain");
FormBodyPart fbp = new FormBodyPart("UploadService", filePart);
MultipartEntity mpe = new MultipartEntity();
mpe.addPart(fbp);
実際、私は自分のデータをメモリに持っているので、ディスクに保存するという考えが好きではないので、置き換えようとしました
FileBody filePart = new FileBody(new File("emptyFile.txt"), "text/plain");
と
StringBody filePart = new StringBody("");
しかし、2 番目の方法は機能しません。サーバーは HTTP 500 例外を返します。ワイヤー上のデータをログに記録すると、唯一の違いは次のとおりであることに気付きました。
FileBody が使用された場合の HTTP POST トレース:
...
Content-Disposition: form-data; name="UploadService"; filename="emptyFile.txt"
...
StringBody が使用された場合の HTTP POST トレース:
...
Content-Disposition: form-data; name="UploadService"
...
つまり、FileBody アップロードでは、StringBody アップロードで指定されていない「ファイル名」が指定されています。どうすればこれを修正できますか?