Как получить размер изображения из URL в Java - PullRequest
0 голосов
/ 27 мая 2018

Я хочу получить размер изображения из URL.Мой источник работает локально, но сервер Ubuntu aws вернет -1.В чем проблема?

URL url=new URL("https://www.bithumb.com/resources/img/comm/sp_coin.png?v=180510");

int image_size = url.openConnection().getContentLength();

System.out.println("mage size:: "+image_size);

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

В чем проблема?

Трудно сказать.Однако, в конечном счете, именно реализация веб-службы (не Ubuntu или AWS) должна включать длину ответа в ответ.

Поэтому, если вы хотите выяснить , почему (иисправьте это) вам нужно изучить реализацию (вашего?) веб-сервиса и то, как он создает ответы.

Как указывает @jspcal, вы можете обойти эту проблему.Но для этого вам необходимо (как минимум) прочитать все изображение из потока данных ответа.Является ли это жизнеспособным / эффективным решением, зависит от того, как / когда вы намереваетесь использовать длину контента.

0 голосов
/ 27 мая 2018

Если сервер не отвечает с действительным заголовком Content-Length, getContentLength возвращает -1.В качестве альтернативы, вы всегда можете получить размер возвращаемых данных:

size = IOUtils.toByteArray(url.openStream()).length;

Использование общих адресов Apahe IO IOUtils.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...