Hi,
ich möchte beliebige URLs nach ihren Gültigkeiten überprüfen, was ich beim von mir angegebenen Beispiel über getContent() mache. Würde mich jetzt gerne über Feedback freuen, ob das so sinnvoll ist, es besser ginge oder wie ich mögliche Probleme aus dem Weg gehe, die da wären:
z.B. bei falschem Port gibt es ein Timeout, was aber schon echt sehr sehr lange dauert. Ist das irgendwie einschränkbar. Wüsste nicht, wie ich das mit meinen "Möglichkeiten" setzen könnte.
Dann wirft er eine Exception, wenn er z.B. auf ein JavaApplet trifft, was ja trotzdem die Gültigkeit der URL beweist (daher diese Exceptionabfrage im catch und nicht ein generelles flag auf true setzen) und ich daher Zweifel bekomme, ob ich das wirklich mit getContent() alles testen soll.
Hier mal mein (unbeholfener) Code:
Danke schon mal für eure Anregungen
ich möchte beliebige URLs nach ihren Gültigkeiten überprüfen, was ich beim von mir angegebenen Beispiel über getContent() mache. Würde mich jetzt gerne über Feedback freuen, ob das so sinnvoll ist, es besser ginge oder wie ich mögliche Probleme aus dem Weg gehe, die da wären:
z.B. bei falschem Port gibt es ein Timeout, was aber schon echt sehr sehr lange dauert. Ist das irgendwie einschränkbar. Wüsste nicht, wie ich das mit meinen "Möglichkeiten" setzen könnte.
Dann wirft er eine Exception, wenn er z.B. auf ein JavaApplet trifft, was ja trotzdem die Gültigkeit der URL beweist (daher diese Exceptionabfrage im catch und nicht ein generelles flag auf true setzen) und ich daher Zweifel bekomme, ob ich das wirklich mit getContent() alles testen soll.
Hier mal mein (unbeholfener) Code:
Code:
public static boolean testConnection(String host, int port){
boolean flag = false; // true: ungueltige URL
URL urlToCheck = null;
String formattedUrl = host + ":"+port;
if(!formattedUrl.startsWith("http://")) formattedUrl = "http://"+formattedUrl;
try {
urlToCheck = new URL(formattedUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
flag = true;
}
try {
urlToCheck.getContent();
} catch (IOException e) {
// Exception fuer z.B. Timeout bei falschem Port
if(e.getClass().getSimpleName().equals("ConnectException")) flag = true;
// Exception fuer falschen Host
if(e.getClass().getSimpleName().equals("UnknownHostException")) flag = true;
e.printStackTrace();
}
return !flag;
}
Danke schon mal für eure Anregungen