Кто-нибудь знает надежный метод для просмотра, существует ли файл в URL-адресе на Java?Файл Java существует по адресу
Пытается проверить, существует ли файл перед его загрузкой.
(HTTP, кстати.)
Кто-нибудь знает надежный метод для просмотра, существует ли файл в URL-адресе на Java?Файл Java существует по адресу
Пытается проверить, существует ли файл перед его загрузкой.
(HTTP, кстати.)
Это не возможно сделать это в общем. Если вы знаете, что URL-адрес - это локальный url с протоколом «file:», вы можете преобразовать его в обычный объект File и проверить его существование таким образом. Если протокол «http:» и т. Д., Вы не можете проверить наличие, не пытаясь открыть поток. Даже тогда вам нужно интерпретировать ответ (в зависимости от протокола), чтобы узнать, есть ли что-то. Для HTTP вы, вероятно, получите ответ 404, если файл не найден, но это может быть другой код ответа. Зависит от службы, к которой вы обращаетесь.
Да, я пробовал использовать HttpURLConnection, и это дало мне 302 каждый раз. –
302 - запрос на повторный вызов. Вы должны следить за перенаправлением, чтобы узнать, существует ли файл. http://en.wikipedia.org/wiki/HTTP_302 –
Я знаю, если он позволяет ему следовать переадресации, он дал мне 200, хотя один файл, который я знаю, не существует. –
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
и повторите описанный выше процесс.
Спасибо, это сработало после немного возиться. –
не забудьте выбрать ответ, который вам больше всего понравился, поставив знак отметки! – Ravikiran
Возможный дубликат [проверка URL существует или нет] (http://stackoverflow.com/questions/4177864/checking-a-url-exist-or-not) –