2012-02-12 17 views
1

有効性を確認するには、50以上のURLのようにチェックする必要があります.50以上の例外をキャッチするのが一番上にあると仮定しています。 try catchで例外をキャッチするためにURLの束が有効であるかどうかをチェックする方法はありますか?また、Androidでは、 "UrlValidator"クラスは存在しません(ただし、標準のJavaには存在します)。UrlUtil.isValidUrl(String url)がありますが、そのメソッドは、それはhttp:// ...任意の提案が含まれている限り?URLがAndroidで有効かどうかを確認してください。

+1

妥当性をどのように定義しますか?仕様に準拠する必要がありますか、またはDNSやHTTP要求を実行して、有効なリソースを参照していることを確認しますか?また、以前の質問に対する回答の一部を受け入れると、より多くの回答を得るのに役立ちます。 –

+0

URLが存在する場合(つまり、404エラーなどが読み込まれない場合や返されない場合)と同様です。 – ZimZim

+0

http://stackoverflow.com/questions/9198158/android-doesnt-recognize-org-apache-commons-validator and http://stackoverflow.com/questions/2230676/how-to-check-for-a-valid -url-in-java –

答えて

6

この解決策は例外をキャッチしますが、他のものは有用でありライブラリを必要としないことがあります。

public boolean URLIsReachable(String urlString) 
{ 
    try 
    { 
     URL url = new URL(urlString); 
     HttpURLConnection urlConnection = (HttpURLConnection) url 
       .openConnection(); 
     responseCode = urlConnection.getResponseCode(); 
     urlConnection.disconnect(); 
     return responseCode != 200; 
    } catch (MalformedURLException e) 
    { 
     e.printStackTrace(); 
     return false; 
    } catch (IOException e) 
    { 
     e.printStackTrace(); 
     return false; 
    } 
} 
+0

私はこれまで長いこと尋ねましたが、今はAndroid/Javaでもっと経験が豊富です。確かにそのトリックを行うことができるいくつかの答えの一つです。しかし、else文は必要ありません。答えをありがとう! – ZimZim

+0

かなり長い時間前に尋ねられたことに気付きました。同じ問題の簡単な解決策を探していたので、他の人が役に立つと思った場合に投稿します。 –

+1

これは必要ないでしょうか非同期に? UIスレッドルールでインターネットから免除された接続を開くだけですか? – Tonithy

関連する問題