Da empfehlen die Android-Entwickler die Verwendung desHttpURLConnection
Klasse , habe ich mich gefragt, ob mir jemand ein gutes Beispiel dafür geben kann, wie eine Bitmap- "Datei" (eigentlich ein In-Memory-Stream) per POST an einen Apache-HTTP-Server gesendet wird. Ich bin nicht an Cookies oder Authentifizierung oder etwas Kompliziertem interessiert, aber ich möchte nur eine zuverlässige und logische Implementierung. Alle Beispiele, die ich hier gesehen habe, sehen eher aus wie "Lass es uns versuchen und vielleicht funktioniert es".
Im Moment habe ich diesen Code:
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL("http://example.com/server.cgi");
urlConnection = (HttpURLConnection) url.openConnection();
} catch (Exception e) {
this.showDialog(getApplicationContext(), e.getMessage());
}
finally {
if (urlConnection != null)
{
urlConnection.disconnect();
}
}
wo showDialog nur eine anzeigen soll AlertDialog
(im Falle einer ungültigen URL?).
Nehmen wir nun an, ich generiere eine Bitmap wie folgt: Bitmap image = this.getBitmap()
In einem Steuerelement, das von abgeleitet ist, View
und ich möchte es per POST senden. Was wäre das richtige Verfahren, um so etwas zu erreichen? Welche Klassen muss ich verwenden? Kann ich HttpPost
wie in diesem Beispiel verwenden ? Wenn ja, wie würde ich die InputStreamEntity
für meine Bitmap erstellen? Ich würde es als abstoßend empfinden, die Bitmap zuerst in einer Datei auf dem Gerät zu speichern.
Ich sollte auch erwähnen, dass ich wirklich jedes unveränderte Pixel der ursprünglichen Bitmap an den Server senden muss, damit ich es nicht in JPEG konvertieren kann.