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é :
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);
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);
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!