2011-01-24 4 views
2

JavaでファイルがURLに存在するかどうかを確かめる方法を知っている人はいますか?JavaファイルがURLにある

ファイルがダウンロードされる前にファイルが存在するかどうかを確認しようとしています。 (ところでHTTP、。)

+0

[URLが存在するかどうか]の複製が可能です。(http://stackoverflow.com/questions/4177864/checking-a-url-exist-or-not) –

答えて

0

は、一般的にこれを行うことはできません。 URLが "file:"プロトコルを持つローカルURLであることを知っている場合、それを通常のFileオブジェクトに変換し、その存在をそのように確認することができます。プロトコルが "http:"などの場合、ストリームを開こうとせずに存在を確認することはできません。それでも、何かがあるかどうかを知るためには、応答を(プロトコルに依存して)解釈する必要があります。 HTTPの場合、ファイルが見つからない場合は404の応答が返されますが、別の応答コードになる可能性があります。あなたがアクセスしているサービスによって異なります。

+0

はい、私はHttpURLConnectionを使用してみました。毎回302の –

+0

302はリダイレクトリクエストです。ファイルが存在するかどうかを調べるにはリダイレクトに従わなければなりません。 http://en.wikipedia.org/wiki/HTTP_302 –

+0

リダイレクトに従えば、私が知っているファイルが1つも存在しないにもかかわらず、リダイレクトが200になりました。 –

1

URL url = new URL (some_url); 
URLConnection connection = url.openConnection(); 

connection.connect(); 

// Cast to a HttpURLConnection 
if (connection instanceof HttpURLConnection) 
{ 
    HttpURLConnection httpConnection = (HttpURLConnection) connection; 

    int code = httpConnection.getResponseCode(); 

    // do something with code ..... 
} 
else 
{ 
    System.err.println ("error - not a http request!"); 
} 

Usually HTTP error codes of 2xx represent success and 3xx for moved/redirection

「3xx」エラーが発生した場合、応答にはURI: <url> String CrLfという形式のヘッダー行が1つ以上含まれています。この新しいurlを使用して上記の処理を繰り返します。

+0

ありがとう、これはちょっとしたやり直しの後に働いた。 –

+0

あなたは最も印象的な答えを選択するのを忘れないでください。 – Ravikiran

関連する問題