java.net HttpURLConnection Несоответствие типов контента - PullRequest
0 голосов
/ 07 марта 2019

Я хотел бы разработать телеграмма бота , который ищет соответствующие изображения в базе данных iqdb.org .Я успешно захватил изображение пользователя и превратил его в ссылку.Тем не менее, сторона iqdb всегда говорит мне, что мой MIME application/octet-stream вместо image/jpeg, хотя я уже установил соединение con.setRequestProperty("Content-Type", "image/jpeg");

Я пытался открыть ссылку на файл в своем браузере, онработал как задумано - мой браузер автоматически загружал файл jpeg.

Код:

//define the target url.
URL target = new URL("https://iqdb.org/index.xml?url=https://api.telegram.org/file/botAPITokenHidden/photos/file_1.jpg);

//establish GET connection.
HttpURLConnection con = (HttpURLConnection) target.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Content-Type", "image/jpeg");
con.setConnectTimeout(5000);

Ответ от iqdb:

<error message="file_1.jpg: Not an image or image format not supported (server says it is application/octet-stream )." info="<br>Make sure the source URL points directly to the image, not to the page containing the image, and that the server does not block hotlinking."/>

Означает ли это, что телеграмма заблокировала горячую ссылку илиЯ не настроил Content-Type соединения правильно?

1 Ответ

0 голосов
/ 07 марта 2019

url в вашем параметре запроса кажется недействительным.Попробуйте получить изображение через браузер через https://api.telegram.org/file/botAPITokenHidden/photos/file_1.jpg, и вы получите 404 код состояния.Вы должны убедиться, что изображение действительно сохранено в телеграмме.

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