mehrteilige/Formulardaten-POST-Anfrage in Java
In Java war das Erstellen von mehrteiligen/Formulardaten-POST-Anfragen einst mit Apache Commons möglich HttpClient-Version 3.x. Diese Funktion wurde jedoch in Version 4.0 eingestellt.
Die HttpClient-Entwickler begründeten diese Entfernung damit, dass die Multipart-Verarbeitung außerhalb des Umfangs der HTTP-Kernfunktionalität der Bibliothek liege. Sie schlugen vor, nach mehrteiligem Code zu suchen, der von anderen Projekten verwaltet wird, gaben jedoch zu, keine Kenntnis von solchen Projekten zu haben.
Problemumgehungen mit HttpClient 4.x
Trotz der Entfernung der dedizierten mehrteiligen Unterstützung gibt es Problemumgehungen zum Erstellen mehrteiliger Anforderungen mit HttpClient 4.x. Hier ist ein Beispiel:
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost uploadFile = new HttpPost("..."); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN); // Attach 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();
Beachten Sie, dass ab HttpClient 4.3 einige Klassen veraltet sind. Informationen zur aktualisierten API-Nutzung finden Sie in der offiziellen Dokumentation.
Das obige ist der detaillierte Inhalt vonWie erstelle ich Multipart-/Formulardaten-POST-Anfragen in Java, nachdem Apache HttpClient 3.x die Multipart-Unterstützung entfernt hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!