求教如何判断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你参考一下。 --------------------编程问答-------------------- 主要是判断请求发送后服务器返回的状态码 --------------------编程问答-------------------- 这个是实现不了的,因为他返回的状态码总是最后一个,如果对错误链接进行了重定向,状态码依旧是200 --------------------编程问答--------------------
setFollowRedirects(false)无效? --------------------编程问答--------------------
这个是实现不了的,因为他返回的状态码总是最后一个,如果对错误链接进行了重定向,状态码依旧是200
主要是判断请求发送后服务器返回的状态码
setFollowRedirects(false)无效?
补充:Java , Web 开发