gpt4 book ai didi

java - JAVA检查url是否存在

转载 作者:行者123 更新时间:2023-11-30 07:34:15 27 4
gpt4 key购买 nike


我正在尝试检查用户输入的网址是否确实存在。以下是我尝试过的。

public static Boolean checkURLExists(String urlName) 
{
Boolean urlCheck=false;
try{
URL url = new URL(urlName);
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection huc = (HttpURLConnection) url.openConnection();
huc.setRequestMethod("GET");
int responseCode = huc.getResponseCode();
String responseMessage = huc.getResponseMessage();
char a=String.valueOf(Math.abs((long)huc.getResponseCode())).charAt(0);
if ((a == '2' || a == '3')&& (responseMessage.equalsIgnoreCase("ok")||responseMessage.equalsIgnoreCase("found")||responseMessage.equalsIgnoreCase("redirect"))) {
System.out.println("GOOD "+responseCode+" - "+a);
urlCheck=true;
} else {
System.out.println("BAD "+responseCode+" - "+a);
}
}catch(Exception e){
e.printStackTrace();
}
return urlCheck;
}

上述代码的问题在于它返回 http://www.gmail.comhttp://www.yahoo.co.in等作为响应代码 301 和响应消息“永久移动”的无效 URL,但它们实际上重定向到其他 URL,是否有任何方法可以检测在浏览器中输入的 URL 是否会打开页面?

谢谢。

最佳答案

网络浏览器在看到 301 响应时的正常行为是遵循重定向。但你似乎已经告诉你的测试代码不要这样做。如果您希望代码的行为(更像)像浏览器一样,请更改此

  HttpURLConnection.setFollowRedirects(false);

到此

  HttpURLConnection.setFollowRedirects(true);

关于java - JAVA检查url是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35623824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com