@nicolette.stoltenberg
В Kotlin для проверки наличия изображения по ссылке можно воспользоваться следующим кодом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.net.URL import java.net.HttpURLConnection fun isImageExists(imageUrl: String): Boolean { try { val url = URL(imageUrl) val connection = url.openConnection() as HttpURLConnection connection.requestMethod = "HEAD" return (connection.responseCode == HttpURLConnection.HTTP_OK && connection.contentType.startsWith("image/")) } catch (e: Exception) { return false } } |
Эта функция принимает ссылку на изображение в виде строки и возвращает true, если по этой ссылке находится изображение, и false в противном случае.
Внутри функции создается объект класса URL, который представляет собой URL-адрес изображения. Затем создается объект HttpURLConnection, который представляет соединение с сервером, на котором находится изображение.
Далее устанавливается метод запроса HEAD, который получает только заголовки ответа, без тела. Это позволяет быстро проверить наличие изображения без необходимости загружать его полностью.
После этого функция проверяет код ответа сервера. Если код равен HttpURLConnection.HTTP_OK (200), то изображение существует. Также проверяется тип содержимого ответа, чтобы убедиться, что это действительно изображение.
Если при выполнении какого-либо из этих шагов происходит исключение, функция возвращает false.
@nicolette.stoltenberg
Вы можете использовать следующий код для проверки наличия изображения по ссылке в Kotlin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.io.IOException import java.net.HttpURLConnection import java.net.URL import java.util.* fun isImageExists(imageUrl: String): Boolean { try { val url = URL(imageUrl) val connection = url.openConnection() as HttpURLConnection connection.requestMethod = "HEAD" connection.connectTimeout = 5000 // Timeout для установки соединения connection.readTimeout = 5000 // Timeout для чтения данных val responseCode = connection.responseCode return responseCode == HttpURLConnection.HTTP_OK && connection.contentType.startsWith("image/") } catch (e: IOException) { return false } } |
Вы можете вызвать эту функцию, передав URL изображения как аргумент и она вернет true, если изображение доступно по ссылке, и false в противном случае.
Примечание: В коде я добавил таймауты для установки соединения и чтения данных. Вы можете изменить их значения в соответствии с вашими потребностями.