Оскільки розробники 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.