Оскільки розробники Android рекомендують використовувати HttpURLConnectionклас, мені було цікаво, чи може хтось надати мені хороший приклад того, як надіслати растровий файл "файл" (власне потік пам'яті) через POST на сервер HTTP Apache HTTP. Мене не цікавлять файли cookie чи автентифікація чи щось складне, але я просто хочу мати надійну та логічну реалізацію. Усі приклади, які я бачив навколо, виглядають більше як "давайте спробуємо це, і, можливо, це спрацює".
Зараз у мене є цей код:
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();
}
}
де showDialog повинен просто відображати AlertDialog(у разі недійсної URL-адреси?).
Тепер скажімо, що я генерую растрову карту так: Bitmap image = this.getBitmap()всередині елемента управління, який Viewя отримую, і я хочу надіслати його через POST. Яка була б правильна процедура для досягнення такого? Які класи мені потрібно використовувати? Чи можу я використовувати, HttpPostяк у цьому прикладі ? Якщо так, то як би я сконструював InputStreamEntityдля моєї растрової карти? Мені здається, що потрібно спочатку зберігати растрові файли у файлі на пристрої.
Я також повинен зазначити, що мені дійсно потрібно надсилати кожен незмінний піксель оригінальної растрової карти на сервер, тому я не можу конвертувати його в JPEG.