求教如何判断url是否可用
之前网上搜了下,大把的程序大概都是这样的思路:
public static boolean urlValidate(String inputUrl){
boolean flag = false;
try {
urlStr = new URL(inputUrl);
connection = (HttpURLConnection) urlStr.openConnection();
HttpURLConnection.setFollowRedirects(false);
state = connection.getResponseCode();
if(state==200){
flag = true;
}
} catch (Exception e) {
flag = false;
return flag;
}
return flag;
}
但是如果浏览器的页面做了重定向,即使输入的url不可用,返回的state依旧是200,所以无法满足要求。
上面的两张图片,第一张是我输入的一个错误的url链接,可以看到返回的状态码是存在问题的。
而第二张是进行了重定向之后的产生的链接, 不止一个。此时返回的状态吗是200,而上面程序的state值是200,而不是302,求教我怎么能拿到输入链接产生的状态码,或者提供一个新思路来判断url的可用性呢?求教大家
[解决办法]
顺序调整下试试
HttpURLConnection.setFollowRedirects(false);
connection = (HttpURLConnection) urlStr.openConnection();
[解决办法]
好像很难实现!
[解决办法]
根据状态码,重定向后再取一下地址做判断就行了。如何获取重定向的地址http://blog.sina.com.cn/s/blog_53b720bb01014wb0.html你参考一下。
[解决办法]
主要是判断请求发送后服务器返回的状态码
[解决办法]