首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求教怎么判断url是否可用

2013-12-26 
求教如何判断url是否可用之前网上搜了下,大把的程序大概都是这样的思路:public static boolean urlValidat

求教如何判断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是否可用
求教怎么判断url是否可用
上面的两张图片,第一张是我输入的一个错误的url链接,可以看到返回的状态码是存在问题的。
而第二张是进行了重定向之后的产生的链接, 不止一个。此时返回的状态吗是200,而上面程序的state值是200,而不是302,求教我怎么能拿到输入链接产生的状态码,或者提供一个新思路来判断url的可用性呢?求教大家
[解决办法]
顺序调整下试试
HttpURLConnection.setFollowRedirects(false); 
connection = (HttpURLConnection) urlStr.openConnection();
[解决办法]
好像很难实现!
[解决办法]
根据状态码,重定向后再取一下地址做判断就行了。如何获取重定向的地址http://blog.sina.com.cn/s/blog_53b720bb01014wb0.html你参考一下。
[解决办法]
主要是判断请求发送后服务器返回的状态码
[解决办法]

引用:
Quote: 引用:

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

setFollowRedirects(false)无效?
[解决办法]
考虑重定向目测不好搞,感觉测试的链接应该正常
[解决办法]
这样的话比如用java调用cmd的ping指令获取网址的首页去除http://协议

热点排行