2011-01-24 37 views
2

有沒有人知道一個可靠的方法來查看文件是否存在於Java中的URL上?Java文件存在於URL

嘗試在文件下載之前查看文件是否存在。 (HTTP,btw。)

+0

[檢查網址是否存在或可能不重複](http://stackoverflow.com/questions/4177864/checking-a-url-exist-or-not) – 2011-01-24 03:38:50

回答

0

這是不可能做到這一點。如果您知道該URL是帶有「file:」協議的本地URL,則可以將其轉換爲常規File對象並以此方式檢查其存在。如果協議是「http:」等,您不能檢查存在,而不嘗試打開一個流。即使那樣你也需要解釋響應(以協議相關的方式),以便知道是否有東西存在。對於HTTP,如果找不到文件,您可能會收到404響應,但它可能是另一個響應代碼。取決於您正在訪問的服務。

+0

是的,我試過使用HttpURLConnection,它給了我302的每一次。 – 2011-01-24 03:37:49

+0

302是一個重定向請求。你必須遵循重定向來查看文件是否存在。 http://en.wikipedia.org/wiki/HTTP_302 – 2011-01-24 03:39:54

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,請使用此新的url並重覆上述過程。