Поскольку разработчики Android рекомендуют использовать класс HttpURLConnection
, мне было интересно, может ли кто-нибудь предоставить мне хороший пример того, как отправьте растровый "файл" (фактически поток в памяти) через POST на HTTP-сервер Apache. Меня не интересуют файлы 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.