当前位置:编程学习 > JAVA >>

求教如何判断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(); --------------------编程问答--------------------
引用 1 楼 acefr 的回复:
顺序调整下试试
HttpURLConnection.setFollowRedirects(false); 
connection = (HttpURLConnection) urlStr.openConnection();
那句代码其实是没用的,无法对页面跳转产生任何影响。。 --------------------编程问答-------------------- 好像很难实现! --------------------编程问答-------------------- 根据状态码,重定向后再取一下地址做判断就行了。如何获取重定向的地址http://blog.sina.com.cn/s/blog_53b720bb01014wb0.html你参考一下。 --------------------编程问答-------------------- 主要是判断请求发送后服务器返回的状态码 --------------------编程问答--------------------
引用 5 楼 herl1988 的回复:
主要是判断请求发送后服务器返回的状态码
这个是实现不了的,因为他返回的状态码总是最后一个,如果对错误链接进行了重定向,状态码依旧是200 --------------------编程问答--------------------
引用 6 楼 tong549761863 的回复:
Quote: 引用 5 楼 herl1988 的回复:

主要是判断请求发送后服务器返回的状态码
这个是实现不了的,因为他返回的状态码总是最后一个,如果对错误链接进行了重定向,状态码依旧是200

setFollowRedirects(false)无效? --------------------编程问答--------------------
引用 7 楼 herl1988 的回复:
Quote: 引用 6 楼 tong549761863 的回复:

Quote: 引用 5 楼 herl1988 的回复:

主要是判断请求发送后服务器返回的状态码
这个是实现不了的,因为他返回的状态码总是最后一个,如果对错误链接进行了重定向,状态码依旧是200

setFollowRedirects(false)无效?
。。。是的,我上面那段代码是可以运行的,你不信拷贝下来写个测试类跑一下。。。 --------------------编程问答-------------------- 考虑重定向目测不好搞,感觉测试的链接应该正常 --------------------编程问答-------------------- 这样的话比如用java调用cmd的ping指令获取网址的首页去除http://协议
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,