Maison > Java > javaDidacticiel > Comment puis-je envoyer des requêtes POST Multipart/Form-Data en Java ?

Comment puis-je envoyer des requêtes POST Multipart/Form-Data en Java ?

Linda Hamilton
Libérer: 2024-12-09 11:41:14
original
579 Les gens l'ont consulté

How Can I Send Multipart/Form-Data POST Requests in Java?

Requêtes POST Multipart/Form-Data en Java avec Apache Commons HttpClient

Avant la version 4.0 de HttpClient, il était possible d'envoyer des requêtes multipart /form-data Requêtes POST. Toutefois, cette fonctionnalité a été supprimée dans la version 4.0. Les développeurs HttpClient ont jugé que la gestion multipart était hors de portée de leur projet.

Bibliothèques Java alternatives pour les requêtes POST Multipart/Form-Data :

Malgré l'absence de multipart prise en charge dans HttpClient 4.0, plusieurs bibliothèques Java le fournissent fonctionnalité :

  • Apache Commons FileUpload : Une bibliothèque dédiée d'analyse et de formatage en plusieurs parties d'Apache.
  • Client Jersey : Un client API REST framework qui inclut le support en plusieurs parties via son formulaire class.
  • OkHttp : Un client HTTP moderne et efficace avec prise en charge intégrée des requêtes multiparts.
  • UniRest : Une bibliothèque de requêtes HTTP légère avec capacités en plusieurs parties.

Exemple d'implémentation avec HttpClient 4.3 :

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);

// Attaching the file to the POST:
File f = new File("[/path/to/upload]");
builder.addBinaryBody(
    "file",
    new FileInputStream(f),
    ContentType.APPLICATION_OCTET_STREAM,
    f.getName()
);

HttpEntity multipart = builder.build();
uploadFile.setEntity(multipart);
CloseableHttpResponse response = httpClient.execute(uploadFile);
Copier après la connexion

Exemple d'implémentation avec Legacy HttpClient 4.0 (obsolète) :

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);

FileBody bin = new FileBody(new File(fileName));
StringBody comment = new StringBody("Filename: " + fileName);

MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("bin", bin);
reqEntity.addPart("comment", comment);
httppost.setEntity(reqEntity);

HttpResponse response = httpclient.execute(httppost);
Copier après la connexion

Conclusion :

Bien que HttpClient 4.0 ne prenne pas en charge les données multipart/form-data Les requêtes POST par défaut, les bibliothèques Java alternatives et les extraits de code peuvent aider les développeurs à réaliser cette fonctionnalité. En exploitant ces ressources, les utilisateurs peuvent implémenter efficacement des clients HTTP qui gèrent les requêtes en plusieurs parties et s'intègrent de manière transparente aux services Web tels que l'API distante de Zoho Writer.

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