Erstellen einer mehrteiligen Formulardaten-Post-Anfrage mit Java
Mit der Einführung von Apache Commons HttpClient Version 4.0 entfällt die Möglichkeit, mehrteilige/Formulardaten-POST-Anfragen durchzuführen waren in Version 3.x möglich. Das HttpClient-Team erklärte, dass Multipart-Funktionalität nicht zu seinen Kernaktivitäten gehöre, und empfahl die Suche nach alternativen Bibliotheken.
Eine geeignete Java-Bibliothek finden
Es stellt sich die Frage, welche Java-Bibliotheken bieten Multipart-/Formulardaten-POST-Anfragefunktionen. Eine solche Bibliothek ist HttpClient 4.x, die eine umfassende Lösung zum Stellen dieser Anfragen bietet.
Aktualisierter HttpClient 4.3-Code
Mit HttpClient-Versionen 4.3 und höher ist die API wurde aktualisiert und einige Klassen wurden veraltet. Der folgende Codeausschnitt veranschaulicht die überarbeitete Methode zum Erstellen mehrteiliger Dateibeiträge:
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();
Veralteter HttpClient 4.0-Code (als Referenz)
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();
Mit diesen Bibliotheken Entwickler können nahtlos HTTP-Clients erstellen, die in der Lage sind, mehrteilige POST-Anfragen/Formulardaten-Anfragen zu stellen, sodass sie mit Webdiensten und APIs interagieren können, die diesen Typ erfordern des Anfrageformats.
Das obige ist der detaillierte Inhalt vonWie mache ich mit HttpClient mehrteilige/Formulardaten-POST-Anfragen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!