Inhalt einer Datei mit HttpClient veröffentlichen?
-
22-07-2019 - |
Frage
Ich möchte den Inhalt einer Datei als Teil einer HTTP-Anfrage mit Apache HttpClient senden und konnte nicht herausfinden, wie ich den Dateiinhalt im Anfragetext weitergeben soll.
Lösung
Sie haben das Format nicht angegeben ...
Höchstwahrscheinlich möchten Sie eine POST-Anfrage senden, deren Inhalt sein wird Multipart-/Formulardaten Mime Typ.Dies emuliert, was ein Browser von einem <INPUT type="file" ...>-Formularelement sendet.Dies erfordert eine ziemlich ausgefeilte Analyse auf der Serverseite, um die verschiedenen Teile aus dem Textkörper zu extrahieren und die Dateidaten korrekt aus den anderen Feldern (falls vorhanden) zu extrahieren.Glücklicherweise, Commons-Datei hochladen macht das perfekt.Die erste Antwort bzgl FilePart ist genau richtig.
Alternativ können Sie einfach den Rohinhalt einer Datei als Hauptteil der Anfrage veröffentlichen, indem Sie eine verwenden InputStreamRequestEntity.Dies kann viel einfacher sein, wenn Sie Ihre eigene Serverseite schreiben, um die Daten zu empfangen.Die Serverseite ist so einfach wie das Streamen des InputStream der Anfrage auf die Festplatte.Ich verwende diese Technik für Uploads mit Google Gears.