Puisque les développeurs Android recommandent d'utiliser la HttpURLConnection
classe, je me demandais si quelqu'un pouvait me donner un bon exemple sur la façon d'envoyer un "fichier" bitmap (en fait un flux en mémoire) via POST à un serveur HTTP Apache. Je ne suis pas intéressé par les cookies ou l'authentification ou quoi que ce soit de compliqué, mais je veux juste avoir une implémentation fiable et logique. Tous les exemples que j'ai vus ici ressemblent plus à "essayons ceci et peut-être que ça marche".
En ce moment, j'ai ce 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();
}
}
où showDialog devrait simplement afficher un AlertDialog
(en cas d'URL invalide?).
Maintenant, disons que je génère un bitmap comme ceci: à l' Bitmap image = this.getBitmap()
intérieur d'un contrôle dérivé de View
et je veux l'envoyer via POST. Quelle serait la procédure appropriée pour réaliser une telle chose? Quelles classes dois-je utiliser? Puis-je utiliser HttpPost
comme dans cet exemple ? Si oui, comment pourrais-je construire le InputStreamEntity
pour mon bitmap? Je trouverais révoltant de devoir d'abord stocker le bitmap dans un fichier sur l'appareil.
Je dois également mentionner que j'ai vraiment besoin d'envoyer chaque pixel non modifié du bitmap d'origine au serveur, donc je ne peux pas le convertir en JPEG.