Heim > Java > javaLernprogramm > Wie mache ich mehrteilige/Formulardaten-POST-Anfragen in Java?

Wie mache ich mehrteilige/Formulardaten-POST-Anfragen in Java?

Susan Sarandon
Freigeben: 2024-12-09 14:35:19
Original
307 Leute haben es durchsucht

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

Erstellen einer Multipart-/Formulardaten-POST-Anfrage in Java

HTTPs Multipart-/Formulardaten-Kodierung wird häufig für Datei-Uploads verwendet, sodass Clients sowohl Text als auch Text senden können Binärdaten in einer einzigen Anfrage. Während Apache Commons HttpClient 3.x diese Funktionalität unterstützte, wurde sie in Version 4.0 entfernt. In diesem Artikel werden alternative Java-Bibliotheken untersucht, die Multipart-/Formulardaten-POST-Anfragen ermöglichen.

Obwohl wir uns an das HttpClient-Projekt gewandt haben, sind keine Bemühungen bekannt, die Multipart-Unterstützung erneut zu implementieren. Daher müssen Entwickler nach alternativen Lösungen für ihre Multipart-/Formulardatenanforderungen suchen.

Lösung

HttpClient 4.x, die aktuelle stabile Version, bietet eine modernere Version API zur Bearbeitung mehrteiliger Anfragen. Hier ist ein Beispiel mit der aktualisierten API:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost uploadFile = new HttpPost("...");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("field1", "yes", ContentType.TEXT_PLAIN);
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();
Nach dem Login kopieren

Für Entwickler, die noch HttpClient 4.0 verwenden (nicht empfohlen), verwendet das folgende Codefragment die veraltete API:

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();
Nach dem Login kopieren

Andere Java-Bibliotheken, die Zur Unterstützung von Multipart-/Formulardaten-POST-Anfragen gehören:

  • Apache HTTP Components HttpComponents-Client: Eine moderne, threadsichere HTTP-Client-Bibliothek
  • Jersey Client API: Eine hochwertige, benutzerfreundliche RESTful-Webservices-Client-Bibliothek
  • Grizzly REST Framework: Ein Framework zum Erstellen von RESTful-Webdiensten

Das obige ist der detaillierte Inhalt vonWie mache ich mehrteilige/Formulardaten-POST-Anfragen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage