Jersey RESTful Web 服務中的附加資料檔案上傳
要在單一REST 呼叫中實作檔案上傳uploadFileWithData方法如下:
@POST @Path("/upload2") @Consumes({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response uploadFileWithData( @FormDataParam("file") InputStream fileInputStream, @FormDataParam("file") FormDataContentDisposition contentDispositionHeader, @FormDataParam("emp") String employeeJson) { // Deserialize the employee data from JSON JacksonJsonProvider provider = new JacksonJsonProvider(); Employee emp = provider.readFrom(Employee.class, employeeJson); // ...business logic... }
Key要點:
Postman 故障排除:
Postman 可能不會自動為各個身體部位設定Content-Types。若要解決此問題:
替代解決方案:
或者,您可以在REST 方法中明確設定Content-Type:
@POST @Path("/upload2") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFileAndJSON( @FormDataParam("emp") FormDataBodyPart jsonPart, @FormDataParam("file") FormDataBodyPart bodyPart) { jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE); Employee emp = jsonPart.getValueAs(Employee.class); // ...business logic... }
注意:
如果您使用的連接器與HttpUrlConnection 不同,您可能會遇到相關評論中討論的問題。
以上是如何在 Jersey RESTful Web 服務中上傳附加 JSON 資料的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!