Gibt es eine gute Möglichkeit, den Fehler "Host ist nicht behoben" zu vermeiden, der eine App zum Absturz bringt? Eine Möglichkeit, eine Verbindung zu einem Host (wie einer URL) herzustellen und festzustellen, ob diese überhaupt gültig ist?
android
url
url-validation
Kidalex
quelle
quelle
Antworten:
Verwenden Sie URLUtil , um die URL wie folgt zu überprüfen .
Es wird True zurückgegeben, wenn die URL gültig ist, und false, wenn die URL ungültig ist .
quelle
http://
oderhttps://
es wahr zurückkehren wirdWenn dies nicht funktioniert, können Sie Folgendes verwenden:
quelle
Ich würde eine Kombination der hier und in anderen Stackoverflow-Threads erwähnten Methoden verwenden:
quelle
Wickeln Sie den Vorgang in einen Versuch / Fang. Es gibt viele Möglichkeiten, wie eine URL wohlgeformt, aber nicht abrufbar sein kann. Darüber hinaus garantieren Tests wie das Überprüfen, ob der Hostname vorhanden ist, nichts, da der Host unmittelbar nach der Überprüfung möglicherweise nicht mehr erreichbar ist. Grundsätzlich kann keine Vorabprüfung garantieren, dass der Abruf nicht fehlschlägt und eine Ausnahme auslöst. Planen Sie daher besser, die Ausnahmen zu behandeln.
quelle
Ich habe viele Methoden ausprobiert. Und finde, dass niemand mit dieser URL gut funktioniert :
Jetzt benutze ich folgendes und alles geht gut.
quelle
quelle
In meinem Fall
Patterns.WEB_URL.matcher(url).matches()
funktioniert es nicht richtig, wenn ichString
ähnlich wie "first.secondword" tippe (Meine App überprüft Benutzereingaben). Diese Methode gibt true zurück.URLUtil.isValidUrl(url)
funktioniert bei mir richtig. Vielleicht wäre es jemand anderem nützlichquelle
Wenn Sie von verwenden
kotlin
, können Sie einenString.kt
Code erstellen und unten schreiben:Dann:
quelle
Sie können die URL folgendermaßen überprüfen:
quelle
Dies ist die richtige Lösung, die ich verwende. Das Hinzufügen
https://
vor dem Originaltext verhindert, dass Text wie "www.cats.com" als betrachtet wirdURL
. Wenn diesnew URL()
erfolgreich ist, überprüfen Sie das Muster, um einfache Texte wie " https: // Katzen " auszuschließen , die berücksichtigt werden sollenURL
.quelle
Fügen Sie einfach diese Codezeile hinzu:
quelle
quelle