Maison > Java > javaDidacticiel > Comment créer des requêtes POST Multipart/Form-Data en Java à l'aide de HttpClient ?

Comment créer des requêtes POST Multipart/Form-Data en Java à l'aide de HttpClient ?

Mary-Kate Olsen
Libérer: 2024-12-16 11:34:16
original
839 Les gens l'ont consulté

How to Make Multipart/Form-Data POST Requests in Java Using HttpClient?

Faire une demande de publication de données de formulaire en plusieurs parties avec Java

L'avènement d'Apache Commons HttpClient version 4.0 a éliminé la possibilité d'effectuer des requêtes POST en plusieurs parties/données de formulaire qui étaient possibles dans la version 3.x. L'équipe HttpClient a expliqué que les fonctionnalités multiparts n'entraient pas dans le cadre de leurs activités principales et a recommandé de rechercher des bibliothèques alternatives.

Trouver une bibliothèque Java appropriée

La question se pose de savoir laquelle Les bibliothèques Java offrent des capacités de requête POST multipart/form-data. L'une de ces bibliothèques est HttpClient 4.x, qui fournit une solution complète pour effectuer ces requêtes.

Code HttpClient 4.3 mis à jour

Avec les versions HttpClient 4.3 et supérieures, l'API a été mis à jour et certaines classes sont devenues obsolètes. L'extrait de code suivant illustre la méthode révisée pour créer des publications de fichiers en plusieurs parties :

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

// This attaches 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);
HttpEntity responseEntity = response.getEntity();
Copier après la connexion

Code HttpClient 4.0 obsolète (pour référence)

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);
HttpEntity resEntity = response.getEntity();
Copier après la connexion

Avec ces bibliothèques, les développeurs peuvent créer de manière transparente des clients HTTP capables d'effectuer des requêtes POST multipart/form-data, leur permettant d'interagir avec les services Web et les API qui nécessitent ce type du format de demande.

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