怎样用java获取URL返回状态码

沈万三gz 2012-05-30 10:34:12
就是要用java写一个软件,判断一个url是否可以连接,返回HTTP的状态码,像200,404之类的;
我用new Integer(httpUrlConnection.getResponseCode()).toString();不给我返回404,只有200,是什么情况
...全文
4092 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingyi_cn 2014-08-10
  • 打赏
  • 举报
回复
http://blog.csdn.net/caoyishuai/article/details/7937023
s1289263571 2014-07-25
  • 打赏
  • 举报
回复
HttpClient和UrlConnection 会自动处理http 重定向, 导致重定向时拿取得状态码是200, 而无法正确的获取302 //设置本次连接禁止重定向 httpUrlConnection.setInstanceFollowRedirects(false);
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复
老大们,没人站出来知道点一下啊!
assx1 2012-05-30
  • 打赏
  • 举报
回复
我也同求!!
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复
我就想直接判断这个页面是不是存在,要是存在,返回200;不存在404;有错误500,就是返回http状态码,应该怎么写
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复
在线急等,求指点啊
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复
还有,http://www.hao123.com/admin.php
getResponseCode code =200
getResponseMessage message =OK
Wed May 30 02:56:52 GMT 2012连接http://www.hao123.com/admin.php正常
这里实际的效果是这个页面不存在,进的是一个error页面;但是他会自动跳转到http://www.hao123.com
结果返回还是200,ok;这不是我想要的


应该怎么办??
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复
换了,http;//www.hao123.com我用的分号,no protocol: http;//www.hao123.com
dxqrr 2012-05-30
  • 打赏
  • 举报
回复
200表示连接成功,你换个不存在的url试试
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复
返回结果:
http://www.sina.com
getResponseCode code =200
getResponseMessage message =OK
Wed May 30 02:13:42 GMT 2012连接http://www.sina.com正常
http;//www.hao123.com
http;//www.hao123.comno protocol: http;//www.hao123.com这里没有404,怎么办,什么问题
沈万三gz 2012-05-30
  • 打赏
  • 举报
回复

try {
// surl="http://www.baidu.com";
URL url = new URL(surl);
URLConnection rulConnection = url.openConnection();
HttpURLConnection httpUrlConnection = (HttpURLConnection) rulConnection;
httpUrlConnection.setConnectTimeout(300000);
httpUrlConnection.setReadTimeout(300000);
httpUrlConnection.connect();
String code = new Integer(httpUrlConnection.getResponseCode()).toString();
String message = httpUrlConnection.getResponseMessage();
System.out.println("getResponseCode code ="+ code);
System.out.println("getResponseMessage message ="+ message);
if(!code.startsWith("2")){
throw new Exception("ResponseCode is not begin with 2,code="+code);
}
System.out.println(getCurDateTime()+"连接"+surl+"正常");
}catch(Exception ex){
System.out.println(ex.getMessage());
}
第一种方法 使用标准的JAVA接口 1 将用户名和密码等用Map泛型封装 再使用StringBuffer 转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据用POST 打开输入和输出流 获取上传信息 字节大小以及长度 设置请求体的类型是文本类型 获得输出流 向服务器输出数据 获得服务器响应的结果和状态码 如果 返回码等于200 得到服务器返回的输入流 将输入流转换成指定编码的字符串并返回 就可以成功提交并得到服务器返回的信息 第二种方法 使用标准Apache接口 02 03 15 19 30 + 06 12 02 03 15 19 30 31 + 06 12 1 将用户名和密码等用Map泛型封装 再使用List<NameValuePair> list new ArrayList<NameValuePair> ; 转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据用POST 打开输入和输出流 获取上传信息 字节大小以及长度 设置请求体的类型是文本类型 获得输出流 向服务器输出数据 获得服务器响应的结果和状态码 如果 返回码等于200 得到服务器返回的输入流 将输入流转换成指定编码的字符串并返回 就可以成功提交并得到服务器返回的信息">第一种方法 使用标准的JAVA接口 1 将用户名和密码等用Map泛型封装 再使用StringBuffer 转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据用POST [更多]

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧