Вы должны использовать HttpHead для выдачи запроса HEAD, который похож на GET, но вернет только заголовки. Если длина контента удовлетворительная, вы можете отправить запрос GET на получение контента.
Большинство серверов должны обрабатывать запросы HEAD без проблем, но иногда серверы приложений не ожидают этого и выдают ошибку. Просто что-то, о чем нужно знать.
ОБНОВЛЕНИЕ думал, что я постараюсь ответить и на ваш актуальный вопрос. Вероятно, вам придется прочитать данные в промежуточный байтовый буфер перед передачей данных в BitmapFactory.
InputStream is = bufHttpEntity.getContent();
ByteArrayOutputStream bytes = ByteArrayOutputStream();
byte[] buffer = new byte[128];
int read;
int totalRead = 0;
while ((read = is.read(buffer)) > 0) {
totalRead += read;
if (totalRead > TOO_BIG) {
// abort download. close connection
return null;
}
bytes.write(buffer, 0 read);
}
Не связано, но не забывайте всегда вызывать потребление объекта () для объекта после использования, чтобы HttpClient мог повторно использовать соединение.