检查URL是否存在

我需要检查URL是否存在。 我想为此编写一个servlet,即检查URL是否存在。 如果输入的URL不存在,则应返回一些消息。

更好的HTTP解决方案:

public static boolean exists(String URLName){ try { HttpURLConnection.setFollowRedirects(false); // note : you may also need // HttpURLConnection.setInstanceFollowRedirects(false) HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection(); con.setRequestMethod("HEAD"); return (con.getResponseCode() == HttpURLConnection.HTTP_OK); } catch (Exception e) { e.printStackTrace(); return false; } } 

如果您正在寻找任何其他URL,请尝试此代码

  public static boolean exists(String URLName){ boolean result = false; try { url = new URL("ftp://ftp1.freebsd.org/pub/FreeBSD/"); //url = new URL("ftp://ftp1.freebsd.org/pub/FreeBSD123/");//this will fail input = url.openStream(); System.out.println("SUCCESS"); result = true; } catch (Exception ex) { Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex); } return result; } 

资料来源 :http://www.rgagnon.com/javadetails/java-0059.html

您可以尝试使用HTTP的HEAD方法来查看服务器是否在特定URL上返回状态代码200并采取相应措施。

请参阅http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol并向下滚动到“ 请求方法”

您可以建立连接,返回输入流,并检查是否为null。

我使用这个bash脚本来检查URL,但需要将所有文件放在一个文件“urls.csv”中

 #!/bin/bash ############################################### # mailto: ggerman@gmail.com # checkurls # https://github.com/ggerman/checkurls/ # require curl ############################################### url() { cat urls.csv | replace | show } replace() { tr ',' ' ' } show() { awk '{print $1}' } url | \ while read CMD; do echo $CMD curl -Is $CMD | head -n 1 done