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

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

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()表示获取状态码。

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