Mehrteilige/Formulardaten-POST-Anfragen in Java mit Apache Commons HttpClient
Vor Version 4.0 von HttpClient war es möglich, mehrteilige Anfragen zu senden /form-data POST-Anfragen. Diese Funktion wurde jedoch in Version 4.0 entfernt. Die HttpClient-Entwickler waren der Ansicht, dass die Multipart-Verarbeitung für ihr Projekt nicht möglich sei.
Alternative Java-Bibliotheken für Multipart-/Formulardaten-POST-Anfragen:
Trotz der Abwesenheit von Multipart Unterstützung in HttpClient 4.0, mehrere Java-Bibliotheken bieten dies Funktionalität:
Beispielimplementierung mit 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);
Beispielimplementierung mit Legacy HttpClient 4.0 (veraltet):
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);
Schlussfolgerung:
Während HttpClient 4.0 keine Multipart-/Formulardaten unterstützt Standardmäßige POST-Anfragen, alternative Java-Bibliotheken und Codefragmente können Entwicklern dabei helfen, diese Funktionalität zu erreichen. Durch die Nutzung dieser Ressourcen können Benutzer HTTP-Clients effektiv implementieren, die mehrteilige Anforderungen verarbeiten und sich nahtlos in Webdienste wie die Remote-API von Zoho Writer integrieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrteilige/Formulardaten-POST-Anfragen in Java senden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!