我正在尝试编写 Resteasy 客户端类来制作简单的 POST 多部分/表单数据请求来上传文件。因此,POST 请求必须包含Content-Disposition: form-data; name="files"; filename="myfile.txt"
参数。 我能够使用实体(值(类中字段@PartFilename注释来静态设置它。 像这样
public class UploadStreamMultipartBody {
@FormParam("files")
@PartFilename(value = "myfile.txt")
@PartType(MediaType.APPLICATION_OCTET_STREAM)
public InputStream file;
}
但是我无法实现如何动态制作它,因此我可以在运行时🤔中提供文件名 原因注释值在编译时读取一次。
请改用MultipartFormDataOutput
。
接口示例:
@POST
@Path("/document-store")
@Consumes(MediaType.MULTIPART_FORM_DATA)
void uploadDocument(@MultipartForm MultipartFormDataOutput data);
用法:
var form = new MultipartFormDataOutput();
form.addFormData(/*key=*/"file", inputStream, new MediaType("application", "pdf"), fileName);
documentStoreClient.uploadDocument(form);