В настоящее время у моего приложения есть функция, которая может обнаружить, была ли обнаружена страница/профиль и можно ли в первую очередь получить доступ к соответствующей ссылке. Теперь я пытаюсь создать более безопасную программу, которая также проверит ограничения возраста платформы, которую пользователь будет доступен, поскольку приложению не будет разрешено отправлять пользователя на платформу, которая имеет неподходящее содержание.
Проблем Возрастные ограничения, но это не работает и не является надежным и эффективным.
Код: Выделить всё
//Link Validation
public static boolean checkAbilityToCreate(String link) {
if (link.startsWith("http://") || link.startsWith("https://") && !link.equals("https://example.com")) {
Pattern emailPattern = Pattern.compile
("([\\w.-]+)\\.([\\w .-]){2,}/(.+)");
String checkOn = link.split("//")[1];
Matcher matcher = emailPattern.matcher(checkOn);
if (matcher.find()) {
try {
URI uri = new URI(link);
URL url = uri.toURL();
} catch (Exception e) {
return false;
}
return valid_Hyper_Text_Transfer_Protocol(link);
}
}
return false;
}
private static boolean valid_Hyper_Text_Transfer_Protocol(String httpToCheck) {
try {
URL url = new URL(httpToCheck);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
return ContentValidator.isValidContent(connection);
}
} catch (IOException e) {
//TODO - handle
}
return false;
}
private static class ContentValidator {
public static boolean isValidContent(HttpURLConnection connection) {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder content = new StringBuilder();
String dummy = "";
while ((dummy = in.readLine()) != null) {
content.append(dummy);
if (content.toString().contains("page isn't available") ||
content.toString().contains("page not found")) {
return false;
}
//another if statement that was looking in the content for age
//restrictions
}
in.close();
return true;
} catch (IOException e) {
return false;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... in-website