如何在运行时@POST RESTEasy 客户端方法中设置实体字段的@PartFilename?



我正在尝试编写 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);

最新更新