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

  • 相关阅读:
    String_字符串各个场景下的==
    jvm_run-time method area
    jvm类加载_类的流程
    TypeError: Restaurant() takes no arguments
    EMC测试国家标准GB/T 17626
    8-8 用户的专辑
    8-7 专辑
    8-6 城市名
    7-6 三个出口
    TypeError: module() takes at most 2 arguments (3 given)
  • 原文地址:https://www.cnblogs.com/mengxinrenyu/p/7633695.html
Copyright © 2020-2023  润新知