Téléchargement de fichiers avec des données supplémentaires dans le service Web RESTful de Jersey
Pour réaliser le téléchargement de fichiers avec d'autres données d'objet dans un seul appel REST, modifiez la méthode uploadFileWithData comme suit :
@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... }
Clé Points :
Dépannage de Postman :
Postman peut ne pas définir automatiquement les types de contenu pour des parties individuelles du corps. Pour résoudre ce problème :
Alternative Solution :
Vous pouvez également définir explicitement le type de contenu dans votre méthode REST :
@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... }
Remarque :
Si vous utilisez un connecteur différent de HttpUrlConnection, vous pouvez rencontrer des problèmes comme indiqué dans les commentaires associés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!