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("");
但是第二种方式不行,服务器返回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 上传中未指定的“文件名”。我怎样才能解决这个问题?