码迷,mamicode.com
首页 > 其他好文 > 详细

获取响应状态Status信息、获取状态码Status Code

时间:2017-10-07 11:57:52      阅读:388      评论:0      收藏:0      [点我收藏+]

标签:数据   代码   efault   负载   rgs   服务器的响应   str   close   sys   

一般服务器的响应状态有以下几种:

200 正常

400 未找到页面

403 拒绝

500 服务器错误

比如我们请求bootstrap中文网,技术分享

 

此时的状态码是200 OK表示正常,后面的from cache,表示从缓存数据库(nosql数据库)中取得的数据,不是从主站点关系型数据库中取得的数据。

为何要这样做,因为要做负载均衡。

这是我们再次刷新页面,按F5或点击刷新。

技术分享

 

这个时候返回304 not modified,表示未修改。

可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。(假象)

 

常见做法:

第一次(首次)访问 200

第二次F5刷新访问 304

我们现在代码中获取状态码:

public class Demo {
	public static void main(String[] args) throws Exception {
		CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、创建实例
		HttpGet httpGet=new HttpGet("http://www.bootcss.com"); //2、创建实例
		
		httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0");
		
		CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、执行
		HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、获取实体
		
		System.out.println(closeableHttpResponse.getStatusLine()); //获取状态码
		
		closeableHttpResponse.close();
		closeableHttpClient.close();
	}
}

运行结果:HTTP/1.1 200 OK

 

接下来我们访问一个不存在的页面:

HttpGet httpGet=new HttpGet("http://www.huimsoft.com/x/x.html");

运行结果:HTTP/1.1 404 Not Found

 

实际我们只需要获取code就行了也就是404或200这样的关键信息。

public class Demo {
	public static void main(String[] args) throws Exception {
		CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、创建实例
		HttpGet httpGet=new HttpGet("http://www.huimsoft.com/x/x.html"); //2、创建实例
		
		httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0");
		
		CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、执行
		HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、获取实体
		
		System.out.println(closeableHttpResponse.getStatusLine()); //获取状态信息
		System.out.println(closeableHttpResponse.getStatusLine().getStatusCode()); //获取状态码
		
		closeableHttpResponse.close();
		closeableHttpClient.close();
	}
}

运行结果:

HTTP/1.1 404 Not Found
404

即closeableHttpResponse.getStatusLine().getStatusCode()表示获取状态码。

获取响应状态Status信息、获取状态码Status Code

标签:数据   代码   efault   负载   rgs   服务器的响应   str   close   sys   

原文地址:http://www.cnblogs.com/mengxinrenyu/p/7633695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!