Maison > Java > javaDidacticiel > Comment télécharger simultanément des fichiers et les données qui les accompagnent dans un service Web Jersey RESTful ?

Comment télécharger simultanément des fichiers et les données qui les accompagnent dans un service Web Jersey RESTful ?

Patricia Arquette
Libérer: 2024-11-30 22:50:11
original
479 Les gens l'ont consulté

How to Upload Files and Accompanying Data Simultaneously in a Jersey RESTful Web Service?

Téléchargement de fichiers avec les données d'accompagnement dans le service Web RESTful de Jersey

Lors de la création d'employés dans un système, vous souhaiterez peut-être inclure une image avec leurs informations personnelles. Bien qu'il soit possible d'y parvenir avec des appels REST séparés, il est plus efficace de le faire avec un seul appel. Cet article apporte une solution à ce problème, vous permettant de recevoir simultanément les données du fichier et des employés.

Pour y parvenir, modifiez la méthode Java comme suit :

@POST
@Path("/upload2")
@Consumes({MediaType.MULTIPART_FORM_DATA})
public Response uploadFileWithData(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("emp") Employee emp) {

    // ..... business login
}
Copier après la connexion

Dans le JSON structure, les données des employés font désormais partie de la demande multipart :

{
    "emp": {
        "Name": "John",
        "Age": 23,
        "Email": "[email protected]",
        "Adrs": {
            "DoorNo": "12-A",
            "Street": "Street-11",
            "City": "Bangalore",
            "Country": "Karnataka"
        }
    }
}
Copier après la connexion

Supplémentaire Considérations

  • Jersey n'autorise pas plusieurs types de contenu dans une seule demande.
  • Certains clients peuvent ne pas prendre en charge la définition de types de contenu pour des parties de corps individuelles (par exemple, Postman et le navigateur lors de l'utilisation de FormData).
  • Pour résoudre ce problème, définissez explicitement le Content-Type avant de désérialiser le JSON. data :
jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE);
Employee emp = jsonPart.getValueAs(Employee.class);
Copier après la connexion
  • Vous pouvez également utiliser un paramètre String et désérialiser le JSON à l'aide d'une bibliothèque comme Jackson ObjectMapper.

En suivant ces étapes, vous pouvez télécharger avec succès un fichier et les données des employés qui l'accompagnent en un seul appel REST à l'aide de Jersey.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal